解决高可用问题
思路:大搭建多个eureka服务端,相互注册,相互监督.
搭建集群不同的是配置文件如下:
eureka7001
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://${eureka.instance.hostname}:${server.port}/eureka/
# 相互注册
defaultZone: http://eureka7002.com:7002/eureka/
#defaultZone: http://eureka7001.com:7001/eureka/
server:
#关闭自我保护模式,保证不可用服务被及时删除
enable-self-preservation: false
eviction-interval-timer-in-ms: 2000
eureka7002
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com #eureka服务端的实例名称
client:
# false表示不向注册中心注册自己
register-with-eureka: false
# false表示自己端就是注册中心,我的职责就是维护服务实例,并不需要检索服务
fetch-registry: false
service-url:
# 设置与Eureka Server交互的地址查询服务和注册服务都需要依赖这个地址
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/
# 相互注册
#defaultZone: http://eureka7002.com:7002/eureka/
defaultZone: http://eureka7001.com:7001/eureka/
server:
#关闭自我保护模式,保证不可用服务被及时删除
enable-self-preservation: false
eviction-interval-timer-in-ms: 2000
服务注册
eureka:
client:
#表示是否将自己注册进EurekaServer默认为true
register-with-eureka: true
#是否从EurekaServer抓取已有的注册消息,默认为true,单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
fetch-registry: true
service-url:
#集群版
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
#单机版
#defaultZone: http://localhost:7001/eureka/
同理也许到搭建多个相同的服务构成服务集群,然后注册到eureka中,
但是由于,多个相同的服务名
消费者eureka无法分清需要将请求分发到哪一个服务中,因此需要给
- RestTemplate配置类添加一个负载均衡注解
- 修改消费者controller层中的请求主机名和端口号.
这里的主机名与端口号要和eureka中注册的服务名相同