目录
一、简介
不管是单体架构拆分而来,亦或是一开始划分出边界的微服务架构,总之,在服务变多的时,服务之间的治理便会变得很复杂,以及后续服务调用、限流、熔断等,都需要一个服务注册发现的框架来作为基础。
Spring Cloud Eureka 是对Netflix公司的Eureka的二次封装,它实现了服务治理的功能。
Eureka分为服务器、客户端两部分。服务器用作服务注册服务器。客户端是一个java客户端,用来简化与服务器的交互、作为轮询负载均衡器,并提供服务的故障切换支持。
二、创建Eureka服务端
1、引入pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
2、配置文件application.yml
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com #eureka服务端的实例名称
client:
#false表示不向注册中心注册自己
register-with-eureka: false
#false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要去检索服务
fetch-registry: false
service-url:
#设置Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
defaultZone: http://localhost:7001/eureka/
3、启动类添加注解
@EnableEurekaServer
4、启动服务端
三、创建客户端
1、引入pom依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
<dependency>
2、配置application.yml
server:
port: 8001
spring:
application:
name: microservice8001 #注册的服务名
eureka:
client:
#表示是否将自己注册在EurekaServer 默认为true
register-with-eureka: true
#是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡。
fetch-registry: true
service-url:
defaultZone: http://localhost:7001/eureka
instance:
instance-id: microservice8001
prefer-ip-address: true
3、启动类添加注解
@EnableEurekaClient
4、启动服务
四、集群安装
贼简单,同样部署两个服务端,修改一下application.yml中的路径配置就行。
eureka:
client:
#表示是否将自己注册在EurekaServer 默认为true
register-with-eureka: true
#是否从EurekaServer抓取已有的注册信息,默认为true。单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡。
fetch-registry: true
service-url:
#单机模式
# defaultZone: http://localhost:7001/eureka
#集群模式
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
instance:
instance-id: payment8001
prefer-ip-address: true