Dav*_*lch 5 netflix spring-cloud netflix-eureka
我正在为一组Spring Cloud + Netflix OSS应用程序进行原型设计,并且遇到了Eureka的问题.在我们的设置中,我们有一个Spring Cloud Config Server + Eureka Server,然后是2个模块,它们利用该服务器组件进行自举和服务发现.
我遇到的问题是,如果我旋转起来尤里卡服务器的两个实例,并尝试将二者进行配对(基于两个对等感知尤里卡服务器中的文档),他们不相互同步.请参阅下面的配置和/或GitHub上的代码.
从本质上讲,Peer1启动并且看起来很好.Peer2将启动并且看起来很好,两个同行在服务中互相展示.但是,如果"UserService"模块旋转并向Peer1注册自身,Peer2将永远不会看到它.如果我们然后启动指向Peer2的"Web"模块,它就永远无法解析UserService.他们基本上是孤立地行事.
我已尝试过serviceUrl在服务器和Eureka服务器实例上设置两者的几种组合,但无济于事.我只是配错了吗?
对等1 /默认配置:
server:
port: 8888
eureka:
dashboard:
path: /dashboard
instance:
hostname: peer1
leaseRenewalIntervalInSeconds: 3
client:
serviceUrl:
defaultZone: ${eureka.server.serviceUrl:http://localhost:${server.port}/eureka/}
server:
serviceUrl:
defaultZone: http://localhost:${server.port}/eureka/
peer2: http://peer2/eureka/
waitTimeInMsWhenSyncEmpty: 0
spring:
application:
name: demo-config-service
profiles:
active: native
# required for Spring Cloud Bus
rabbitmq:
host: ${DOCKER_IP:192.168.59.103}
port: 5672
username: guest
password: guest
virtualHost: /
cloud:
config:
server:
prefix: /configs
native:
searchLocations: /Users/dave/workspace/oss/distributed-spring/modules/config-server/src/main/resources/testConfigs
# git :
# uri: https://github.com/joshlong/microservices-lab-configuration
Run Code Online (Sandbox Code Playgroud)
对等2配置:
server:
port: 8889
eureka:
dashboard:
path: /dashboard
instance:
hostname: peer2
leaseRenewalIntervalInSeconds: 3
client:
serviceUrl:
defaultZone: ${eureka.server.serviceUrl:http://localhost:${server.port}/eureka/}
server:
serviceUrl:
defaultZone: http://localhost:8888/eureka/
peer1: http://peer1/eureka/
waitTimeInMsWhenSyncEmpty: 0
spring:
application:
name: demo-config-service
profiles:
active: native
# required for Spring Cloud Bus
rabbitmq:
host: ${DOCKER_IP:192.168.59.103}
port: 5672
username: guest
password: guest
virtualHost: /
cloud:
config:
server:
prefix: /configs
native:
searchLocations: /Users/dave/workspace/oss/distributed-spring/modules/config-server/src/main/resources/testConfigs
# git :
# uri: https://github.com/joshlong/microservices-lab-configuration
Run Code Online (Sandbox Code Playgroud)
有一些问题.如defaultZone文档中所述,需要位于客户端部分.该defaultZoneURL需要的端口.
/ etc/hosts文件
127.0.0.1 peer1
127.0.0.1 peer2
Run Code Online (Sandbox Code Playgroud)
对等1配置(部分)
eureka:
instance:
hostname: peer1
leaseRenewalIntervalInSeconds: 3
client:
serviceUrl:
defaultZone: http://peer2:8889/eureka/
Run Code Online (Sandbox Code Playgroud)
对等2配置(部分)
eureka:
dashboard:
path: /dashboard
instance:
hostname: peer2
leaseRenewalIntervalInSeconds: 3
client:
serviceUrl:
defaultZone: http://peer1:8888/eureka/
server:
waitTimeInMsWhenSyncEmpty: 0
Run Code Online (Sandbox Code Playgroud)
用户服务配置(部分)配置端口错误.
spring:
application:
name: user-service
cloud:
config:
uri: http://localhost:8888/configs
Run Code Online (Sandbox Code Playgroud)
您可以看到已将用户服务复制到peer1和peer2.如果您愿意,我可以将PR发布到您的代码中.
同行1

同行2

| 归档时间: |
|
| 查看次数: |
4828 次 |
| 最近记录: |