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: 87614. 访问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上
