Как активировать конечную точку /turbine.stream в автономном приложении Turbine
Я пытаюсь создать отдельное приложение для сбора потока Hystrix из других приложений. Но он не предоставляет конечную точку /turbine.stream по умолчанию. Я уверен, что отсутствует в моем проекте.
Spring Boot: 2.0.4.RELEASE, Spring Cloud: Finchley.SR1
Класс приложения:
@SpringBootApplication
@EnableDiscoveryClient
@EnableTurbine
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Содержание applicationaiton.yml:
server:
port: 8383
spring:
application:
name: hystrix-turbine
management:
endpoints:
web.exposure.include: '*'
applications: hystrix
turbine:
aggregator:
clusterConfig: ${applications}
appConfig: ${applications}
# instanceUrlSuffix.default: actuator/hystrix.stream
И мавенские зависимости:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-turbine</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Я создал образец проекта для этого.
1 ответ
Я бы посоветовал вам проверить шаги конфигурации ниже:
1) URL вашего потока в панели инструментов Hystrix должен быть:
http://localhost:{turbine app port}/turbine.stream?cluster={configured cluster in properties file}
URL должен указывать на порт приложения, которое имеет @EnableTurbine
аннотации в вашем основном классе.
2) Проверьте, получаете ли вы ответ для:
http://localhost:{client app port}/actuator/hystrix.stream
(используйте для этого браузер) (это должно происходить из приложения, которое вы включили в Hystrix при использовании @EnableCircuitBreaker
)
Если вы получаете эхо-запросы, то по крайней мере ваш поток Hystrix доступен. Если нет, проверьте, есть ли у вас: org.springframework.boot:spring-boot-starter-actuator
в зависимостях на стороне клиента и убедитесь, что у вас установлено свойство ниже в файле application.properties приложения, которое имеет @EnableCircuitBreaker
в основном классе:
management.endpoints.web.exposure.include= hystrix.stream, info, health
Проверьте URL еще раз.
3) Как только вы получите ответ от hystrix.stream
Теперь вы можете настроить кластер в файле свойств приложения турбины:
turbine:
appConfig: {serviceId in lower case}
aggregator:
clusterConfig: {above serviceId in upper case}
после запуска приложения проверьте, правильно ли настроен кластер:
http://localhost:{turbine app port}/clusters
ты не должен получать "[]
"в вашем браузере, если все хорошо.
После того, как вы увидите ответ на конечной точке кластера, вы сможете увидеть подробности на приборной панели, когда укажете на приложение турбины.