Eureka 内部相当于Region和Availablity Zone的关系,集群是一个region (ex:us-east-1)包括多个availablity zone(ex:us-east-1c,us-east-1d,us-east-1e),eureka server 提供服务发现的能力,各个微服务启动的时候,会向其注册自己的信息(ex:ip,端口,微服务名称等),eureka client用于简化与eureka server 的交互,而且eureka client 会缓存服务注册表中的信息。
搭建eureka server
1.引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
这里注意一下,使用springcloud做微服务,一定要注意版本,我这里使用的版本:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.5.RELEASE</version>
<relativePath/>
</parent>
<properties>
<java.version>1.8</java.version>
<spring-cloud.version>Greenwich.SR2</spring-cloud.version>
</properties>
2.在启动类上添加@EnableEurekaServer注解
3.在配置文件中配置
eureka:
client:
service-url:
defaultZone: http://localhost:8761/eureka/
#不把自己注册到eureka server,因为当前应用就是eureka server,不配默认为true
register-with-eureka: false
spring:
application:
name: eurekaServer
server:
port: 8761
4. 访问http://localhost:8761
现在尝试把微服务注册到eureka server
1. 引入依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId> </dependency>
2. 在配置文件配置
spring: application: name: product eureka: client: service-url: defaultZone: http://localhost:8761/eureka/ instance: #把自己的ip注册到eureka server,不配默认false,会注册hostname prefer-ip-address: true
观察eureka页面
此时已经把一个PRODUCT的服务注册到了eureka server上