Экземпляр турбины URLSuffix не работает
Я собираю потоки Hystrix из турбины, но сервисы имеют включенный порт управления на порту 5555.
Когда я установил свойство в турбине:
eureka.client.serviceUrl.defaultZone=http://discovery:8761/eureka/
server.port=8989
InstanceDiscovery.impl=com.netflix.turbine.discovery.EurekaInstanceDiscovery.class
turbine.instanceUrlSuffix=:5555/hystrix.stream
turbine.InstanceMonitor.eventStream.skipLineLogic.enabled=false
turbine.appConfig=service1,service2,gateway
turbine.clusterNameExpression=new String('default')
он пытается подключиться к:
http://gateway-ip:10000/:5555/hystrix.stream
вместо замены порта. Я что-то упускаю?
ОБНОВИТЬ
Я подозреваю, что есть несовместимость между instanceUrlSuffix и EurekaInstanceDiscovery.
Есть ли какая-то информация, которую я должен добавить metadataMap
за эту услугу, чтобы она работала?
Версии:
Турбинный сервис:
- весеннее облако-родитель-родитель: Brixton.SR5
- пружина-облако-стартер-турбина: 1.1.6
Эврика сервис:
- весеннее облако-родитель-родитель: Brixton.SR5
3 ответа
Чтобы это работало, мне нужно было добавить эти два свойства в конфигурацию:
turbine:
instanceInsertPort: false
instanceUrlSuffix: :5555/hystrix.stream
turbine.instanceInsertPort
что сделал трюк, составив окончательный URL из schema://host+urlSuffix
Следующее сработало для меня. Примечание: профиль по умолчанию у меня тоже не работает, но отдельный поток работает таким образом.
мой service1 зарегистрирован на Eureka с -Dserver.port=5151 и -Dmanagement.port=5152, поэтому мой поток Hystrix находится на другом порту, чем моя конечная точка службы.
turbine.instanceInsertPort=false
turbine.appConfig=service1
turbine.aggregator.clusterConfig=SERVICE1
turbine.instanceUrlSuffix.USER=:5152/hystrix.stream
InstanceDiscovery.impl=com.netflix.turbine.discovery.EurekaInstanceDiscovery.class
Turbine не может читать turbine.instanceUrlSuffix в application.property или окружении, для чтения свойств требуется другая библиотека.
Была ли у вас зависимость lib
spring-cloud-starter-netflix-hystrix-dashboard
или же
spring-cloud-starter-netflix-archaius
? Если нет, попробуйте добавить его в свой pom.xml.
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
<version>2.2.7.RELEASE</version>
</dependency>