在第一章的时候,我们将到了Eureka。但是我们只是建立了单实例,所以。这次我们再建立两个Eureka实例出来,实现简单的集群配置。
理论上来讲,因为服务消费者本地缓存了服务提供者的地址,即使Eureka Server宕机,也不会影响服务之间的调用,但是一旦新服务上线,已经在缓存在本地的服务提供者不可用了,服务消费者也无法知道,所以保证Eureka Server的高可用还是很有必要的。
我们在前面第一章的基础上,再建立两个Eureka实例,分别是7002和7003.这两个跟7001的建立步骤完全一样的,不一样的是yml文件的配置。
之前因为是单例的原因,hostname 用的是localhost,现在是多例了,所以我们要做域名映射。所以yml的配置是不一样的。
7001,yml文件配置
server:
port: 7001
eureka:
instance:
hostname: eureka7001.com
client:
registerWithEureka: false #false表示不向注册中心注册自己
fetchRegistry: false #false表示自己就是注册中心,职责是维护服务实例,不需要去提供服务
serviceUrl:
#defaultZone: http://192.168.0.112:7002/eureka/,http://192.168.0.112:7003/eureka/
defaultZone: http://eureka7002.com:7002/eureka/,http://eureka7003.com:7003/eureka/
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #单机版eureka
7002 ,yml文件配置
server:
port: 7002
eureka:
instance:
hostname: eureka7002.com
client:
registerWithEureka: false #false表示不向注册中心注册自己
fetchRegistry: false #false表示不就是注册中心,职责是维护服务实例,不需要去提供服务
serviceUrl:
#defaultZone: http://192.168.0.112:7001/eureka/,http://192.168.0.112:7003/eureka/
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7003.com:7003/eureka/
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #单机版eureka
7003,yml文件配置
server:
port: 7003
eureka:
instance:
hostname: eureka7003.com
client:
registerWithEureka: false #false表示不向注册中心注册自己
fetchRegistry: false #false表示不就是注册中心,职责是维护服务实例,不需要去提供服务
serviceUrl:
#defaultZone: http://192.168.0.112:7001/eureka/,http://192.168.0.112:7002/eureka/
defaultZone: http://eureka7001.com:7001/eureka/,http://eureka7002.com:7002/eureka/
#defaultZone: http://${eureka.instance.hostname}:${server.port}/eureka/ #单机版eureka
分别配置对方的地址作为Eureka Client进行相互注册。由于采用了参数配置eureka.instance.hostname及http://eureka7003.com的写法,则需要在进行hosts的配置,Window在C:\Windows\System32\drivers\etc\hosts
然后启动三个Eureka。访问7001如下图,这里已经显示了7002和7003已经跟7001集群了
访问7002,如下图