Spring Cloud Netflix 教程 - Eureka
1、概览 本文将带你了解如何通过 Spring Cloud Netflix Eureka 来实现客户端服务发现。
客户端服务发现允许服务相互查找和通信,而无需硬编码主机名和端口。在这种架构中,唯一的 “固定点” 是服务注册中心(service registry,),每个服务都必须在注册中心中注册。
一个缺点是所有客户端必须实现特定的逻辑与这个注册中心进行交互。这就需要在实际请求之前进行一次额外的网络请求。
有了 Netflix Eureka,每个客户端都可以同时充当服务器,将自己的状态复制给已连接的对等服务。换句话说,客户端在服务注册中心中检索所有已连接对等服务的列表,并通过负载均衡算法向其他服务发出所有进一步请求。
要获知客户端的存在,它们必须向注册中心发送心跳信号。
为了实现本文的目标,需要实现三个微服务:
注册中心(Eureka Server) REST 服务,在注册中心中注册(Eureka Client) Web 应用,作为客户端(Spring Cloud Netflix Feign Client)来消费 REST 服务(从注册中心获取到服务) 2、Eureka 服务器 使用 Eureka Server 实现一个注册中心,很简单:
在依赖中添加 spring-cloud-starter-netflix-eureka-server 用 @EnableEurekaServer 对 @SpringBootApplication 进行注解,从而启用 Eureka 服务器 配置一些配置属性 一步步来:
首先,创建一个新的 Spring Boot 项目,并添加相应的依赖。
通过 spring-cloud-starter-parent Bom 管理组件的依赖版本。
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-server</artifactId> </dependency> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-parent</artifactId> <version>2021.0.3</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> 你可以在 Spring 的官方文档中查看 最新的 Spring Cloud 版本。