У меня есть микросервис с динамическим портом, т.е. server.port=0
.
Микросервис нормально регистрируется на eureka и работает.
Однако, когда я пытаюсь получить к нему доступ через шлюз Zuul, он не работает с приведенными ниже журналами в моем шлюзе zuul.
c.netflix.loadbalancer.BaseLoadBalancer : Client: book instantiated a LoadBalancer: DynamicServerListLoadBalancer:{NFLoadBalancer:name=book,current list of Servers=[],Load balancer stats=Zone stats: {},Server stats: []}ServerList:null
c.n.l.DynamicServerListLoadBalancer : Using serverListUpdater PollingServerListUpdater
c.netflix.config.ChainedDynamicProperty : Flipping property: book.ribbon.ActiveConnectionsLimit to use NEXT property: niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483647
c.n.l.DynamicServerListLoadBalancer : DynamicServerListLoadBalancer for client book initialized: DynamicServerListLoadBalancer:{NFLoadBalancer:name=book,current list of Servers=[192.168.60.1:0],Load balancer stats=Zone stats: {defaultzone=[Zone:defaultzone; Instance count:1; Active connections count: 0; Circuit breaker tripped count: 0; Active connections per server: 0.0;]
},Server stats: [[Server:192.168.60.1:0; Zone:defaultZone; Total Requests:0; Successive connection failure:0; Total blackout seconds:0; Last connection made:Thu Jan 01 05:30:00 IST 1970; First connection made: Thu Jan 01 05:30:00 IST 1970; Active Connections:0; total failure count in last (1000) msecs:0; average resp time:0.0; 90 percentile resp time:0.0; 95 percentile resp time:0.0; min resp time:0.0; max resp time:0.0; stddev resp time:0.0]
]}ServerList:org.springframework.cloud.netflix.ribbon.eureka.DomainExtractingServerList@4dbc2e52
Однако, когда я меняю порт моего микросервиса (book
) на не динамический server.port = 8081
, все работает нормально, и каждый раз мне приходится перезапускать приложение zuul.
Я думаю, что это не очень хорошо, когда один из микросервисов меняет порт.
Позвольте мне поделиться содержанием application.yml
обоих файлов.
Микросервис (книга), application.yml
spring:
application:
name: book
server:
port: 0 # I change it between 0 and 8081 (8081 works like a charm)
eureka:
client:
service-url:
defaultZone: ${EUREKA_URI:http://localhost:8761/eureka}
instance:
prefer-ip-address: true
Зуул application.yml
server:
port: 8080
spring:
application:
name: gatekeeper
zuul:
routes:
book:
serviceId: book
#Added it so as to increase the timeout for the underlying hysterix of the zuul
hystrix:
command:
default:
execution:
isolation:
strategy: THREAD
thread:
timeoutInMilliseconds: 60000
сервер Eureka application.yml
server:
port: 8761
eureka:
client:
register-with-eureka: false
fetch-registry: false
Облачная версия Sring является динамической (${spring-cloud.version}
) с загрузкой
2.1.0.release.