在使用eureka编写微服务程序时,遇到了一个问题,就是在两个eureka_server
相互注册时,每个eureka中要么只显示对方,要么只在一个中显示。
两个配置如下:
# 配置服务名称 == 注册中心server
spring.application.name=eureka_server_copy
# 服务端口号
server.port=7000
# 配置服务实例ip
eureka.instance.hostname=localhost
#是否将eureka注册到注册中心(本自身注册)
eureka.client.register-with-eureka=true
#是否从eureka中获取注册地址(后台已ip显示而不是域名)
eureka.client.fetch-registry=false
# 配置eureka客户端要连接的服务端信息
eureka.client.service-url.defaultZone=http://localhost:9000/eureka/,http://localhost:7000/eureka/
# 配置服务名称 == 注册中心server
spring.application.name=eureka_server
# 服务端口号
server.port=9000
# 配置服务实例ip
eureka.instance.hostname=localhost
#是否将eureka注册到注册中心(本自身注册)
# 将本身注册到注册中心
eureka.client.register-with-eureka=true
#是否从eureka中获取注册地址(后台已ip显示而不是域名)
eureka.client.fetch-registry=false
# 配置eureka客户端要连接的服务端信息
eureka.client.service-url.defaultZone=http://localhost:7000/eureka/,http://localhost:9000/eureka/
我修改了eureka.client.service-url.defaultZone
地址的顺序问题,当本机的端口在前时,只显示对方的,自己不显示,当本机端口的地址在后时只显示在一个上:
造成这个结果的原因时主机名相同且使用localhost作为注册地址:
# 配置服务实例ip
eureka.instance.hostname=localhost
eureka.client.service-url.defaultZone=http://localhost:9000/eureka/,http://localhost:7000/eureka/
以上两个时造成注册中心不能相互注册的原因,将主机名随意命名,使用172.0.0.1
代替localhost即可:
eureka.instance.hostname=machine2
#是否将eureka注册到注册中心(本自身注册)
eureka.client.register-with-eureka=true
#是否从eureka中获取注册地址(后台已ip显示而不是域名)
eureka.client.fetch-registry=false
# 配置eureka客户端要连接的服务端信息
eureka.client.service-url.defaultZone=http://127.0.0.1:9000/eureka/,http://127.0.0.1:7000/eureka/
修改后既可以相互注册了:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/156254.html