Панель приборов Spring Turbine не работает
Я сталкиваюсь с некоторой проблемой, работая над приборной панелью турбины. Так как я могу получить поток турбины для данного кластера, но не вижу ничего на приборной панели, он просто загружается, как показано на скриншотах ниже. Пожалуйста, помогите, если какая-либо конфигурация отсутствует.
Ниже приведены мои конфигурации:
config.properties
turbine.aggregator.clusterConfig=SpringHystrixDemo2
turbine.instanceUrlSuffix=:9080/hystrix.stream
turbine.EurekaInstanceDiscovery.hystrix2.instances=localhost
InstanceDiscovery.impl=com.netflix.turbine.discovery.EurekaInstanceDiscovery.class
turbine.InstanceMonitor.eventStream.skipLineLogic.enabled=false
Application.yml
server:
port: 8080
turbine:
aggregator:
clusterConfig: SPRINGHYSTRIXDEMO2
clusterNameExpression: new String("default")
appConfig: SpringHystrixDemo2
InstanceMonitor:
eventStream:
skipLineLogic:
enabled: false
bootstrap.yml
spring:
application:
name: SpringTurbine
cloud:
config:
discovery:
enabled: true
eureka:
instance:
nonSecurePort: ${server.port:8080}
client:
serviceUrl:
defaultZone: http://${eureka.host:localhost}:${eureka.port:8761}/eureka/
Application.java
@SpringBootApplication
@EnableHystrix
@EnableEurekaClient
@EnableHystrixDashboard
@EnableTurbine
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Для кластера SpringHystrixDemo2 я настроил его в другом приложении, работающем на другом порту:
application.yml -
server:
port: 9080
hystrix:
command:
RemoteMessageClientCommand:
execution:
isolation:
thread:
timeoutInMilliseconds: 5000
RemoteMessageAnnotationClient:
execution:
isolation:
thread:
timeoutInMilliseconds: 5000
bootstrap.yml
spring:
application:
name: SpringHystrixDemo2
cloud:
config:
enabled: true
discovery:
enabled: true
serviceId: SPRINGCONFIGSERVER
eureka:
instance:
nonSecurePort: ${server.port:9080}
client:
serviceUrl:
defaultZone: http://${eureka.host:localhost}:${eureka.port:8761}/eureka/
Application.java - это сервисная панель hystrix.
@SpringBootApplication
@EnableHystrix
@EnableHystrixDashboard
@EnableEurekaClient
@EnableDiscoveryClient
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Я настроил сервер eureka на 8761 порт. который lisising всех других eureka client.as
Так я не вижу приборной панели турбины. как это только загружается. вид потока турбины
2 ответа
Первое, что приходит мне в голову, это то, что вы можете объявить конечную точку управления следующим образом:
management:
port: 9081
contextPath: /management
Тогда поток турбины будет доступен через {yourHost}: 9081 / management / turbine.stream, в то время как панель управления hystrix будет обслуживаться в {yourhost}:9080/hystrix
Из того, что я прочитал и знал, из вашей конфигурации
turbine.aggregator.clusterConfig=SpringHystrixDemo2
turbine.instanceUrlSuffix=:9080/hystrix.stream
turbine.EurekaInstanceDiscovery.hystrix2.instances=localhost InstanceDiscovery.impl=com.netflix.turbine.discovery.EurekaInstanceDiscovery.class
turbine.InstanceMonitor.eventStream.skipLineLogic.enabled=false
следующие может быть проблема (ы).
Вам не хватает нескольких конфигов, и, возможно, у вас есть дополнительные конфиги.
- Вам не нужно "turbine.EurekaInstanceDiscovery.hystrix2.instances", если у вас действительно несколько экземпляров.
- Вам не нужен "turbine.InstanceMonitor.eventStream.skipLineLogic.enabled", потому что по умолчанию он имеет значение false и требуется, если вы хотите, чтобы он был истинным, когда у вас высокая задержка.
- вам нужно "turbine.appConfig =". В вашем случае я думаю, что это что-то вроде SpringHystrixDemo2 или, возможно, hystrix2 ... используйте здесь правильное имя.
- вам нужен "turbine.aggregator.clusterConfig=", который работал для меня только тогда, когда я использовал в капитале, то есть HYSTRIX2
- если вы используете другой порт управления для своей службы, "turbine.instanceUrlSuffix.HYSTRIX2=:/hystrix.stream
- тогда этот "turbine.instanceInsertPort=false" отключит вставку порта по умолчанию с помощью турбины.. в основном, вы говорите eureka не вставлять какой-либо порт самостоятельно при попытке поиска hystrix.strem..
Ниже приведены мои свойства.
#turbine.clusterNameExpression=new String('default')
#turbine.clusterNameExpression="'default'"
turbine.instanceInsertPort=false
turbine.appConfig=service1
turbine.aggregator.clusterConfig=SERVICE1
turbine.instanceUrlSuffix.SERVICE1=:51512/hystrix.stream
#turbine.ConfigPropertyBasedDiscovery.USER.instances=service1-host1.abc.com,service1-host2.abc.com
InstanceDiscovery.impl=com.netflix.turbine.discovery.EurekaInstanceDiscovery.class
#for high latencies
#turbine.InstanceMonitor.eventStream.skipLineLogic.enabled=false
и попробуйте турбинный поток на
http://host:port/turbine.stream?cluster=SERVICE1