譬如eureka.client.register-with-eureka和fetch-registry是否要配置,配不配区别在哪里;eureka的客户端添加service-url时,是不是需要把所有的eureka的server地址都写上,还是只需要写一个server就可以了(因为server之间已经相互注册了)?如果写上了所有的server地址,那相当于将每个client服务都往所有的server都添加了一遍,那还配置server间的相互注册有什么意义?
- 两个服务端配置:
server: port: 20001eureka: instance: hostname: server1 client: # 表示是否注册自身到eureka服务器 # register-with-eureka: false # 是否从eureka上获取注册信息 # fetch-registry: false service-url: defaultZone: http://server2:20002/eureka/
server: port: 20002eureka: instance: hostname: server2 client: #register-with-eureka: false #fetch-registry: false service-url: defaultZone: http://server1:20001/eureka/
- 客户端配置:
- defaultZone这里代表eureka server的地址,
- 很多文章在这里会将所有的server都配置上去,用逗号分隔,
- 我们这里只配置一个server1,然后测试一下如果server1挂掉了,服务中心还能不能起作用。
- 可以看到eureka_client已经在两个server上都注册上了,虽然我们在client的yml里default_zone只配置了server1。
- 但是请注意:如果server1挂掉了,那么后续的client就无法再注册上来,重启Client后也无法再注册到eureka上来。
- 这就是为什么很多人在Client端添加多个eureka地址的原因!
- 是避免自己注册的eureka单点挂掉。
- 只要自己注册的eureka还在,那么后续添加N个eureka的其他server,所有注册信息都会被复制过去。
spring: application: name: eureka_clienteureka: client: service-url: defaultZone: http://server1:20001/eureka/