Я следил за Spring Cloud Netflix's guide для настройки турбины. После включения Hystrix в двух микросервисах я подтвердил, что конечные точки /hystrix.stream генерируют правильный вывод.Spring Cloud Netflix Hystrix Turbine не получает информацию от услуг на том же хосте
Теперь в проекте панели hystrix я настроил Турбину, чтобы получить агрегированные результаты всех сервисов. Однако все это я получаю последовательность:
: ping
data: {"reportingHostsLast10Seconds":0,"name":"meta","type":"meta","timestamp":1448552456486}
Это мой конфиг:
HystrixDashboard + Turbine Применение:
@EnableHystrixDashboard
@EnableTurbine
@SpringBootApplication
public class HystrixDashboardApplication {
public static void main(String[] args) {
SpringApplication.run(HystrixDashboardApplication.class, args);
}
}
HystrixDashboard + Turbine application.yml:
spring:
application:
name: hystrix-dashboard
server:
port: 10000
turbine:
appConfig: random-story-microservice,storyteller-api
instanceUrlSuffix: /hystrix.stream
logging:
level:
com.netflix.turbine: 'TRACE'
UPDATE
Следуя указаниям kreel, я настроил турбина так:
turbine:
appConfig: random-story-microservice,storyteller-api
instanceUrlSuffix: /hystrix.stream
clusterNameExpression: new String("default")
Он не терпит неудачу с исключением больше и в журналах я вижу, что турбина находит двух кандидатов хостов/microservices :
[ Timer-0] c.n.t.discovery.InstanceObservable : Retrieved hosts from InstanceDiscovery: 2
Однако только один из них, наконец, зарегистрирован. В InstanceObservable.run()
добавлен только один из хостов, поскольку они имеют один и тот же хэш-код, поэтому при добавлении в newState.hostsUp они считаются одинаковыми. com.netflix.turbine.discovery.Instance
хэш рассчитывается на основе имени хоста («MyHost» в обоих случаях), и кластер («по умолчанию»):
// set the current state
for(Instance host: newList) {
if(host.isUp()) {
newState.hostsUp.add(host);
} else {
newState.hostsDown.add(host);
}
}
Что мы должны делать, когда же хозяин предлагает два различных microservices? В этом случае регистрируется только первый экземпляр.
Существует усиление, что позволит турбине это. https://github.com/spring-cloud/spring-cloud-netflix/pull/661 – spencergibb
Отлично! Спасибо за информацию! – codependent