Аналогично в этом посте , я создал другое приложение на основе потока турбины для сбора потока Hystrix из других приложений.
Spring Boot: 2.0.4.RELEASE, Spring Cloud: Finchley.SR1
Класс приложения:
@SpringBootApplication
@EnableDiscoveryClient
@EnableTurbineStream
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
Зависимости maven:
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</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-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Файл конфигурации приложения:
server:
port: 8989
spring:
application:
name: hystrix-turbine-stream
management:
endpoints:
web.exposure.include: '*'
Когда я исследую исходные коды @ EanbleTurbineStream , и обнаружил, что TurbineController
выставляет Flux
для корневого '/' endpiont.
Но когда я попытался исследовать http://localhost:8989 в панели инструментов Hystrix, обнаружил, что он не работает должным образом.
Обновление : Когда я попытался получить доступ к приложению потока турбины и получил:
curl http://localhost:8989
data:{"type":"ping"}
data:{"type":"ping"}
data:{"type":"ping"}
data:{"type":"ping"}
В консоли приложения (ведение журнала) есть некоторый журнал, показанный как:
: Registering MessageChannel turbineStreamInput
Но я не вижу сообщений, отправленных на этот канал в моем клиентском приложении .
Вот примерные коды моего приложения потока турбины
Update2 : все заработало, я использовал устаревший spring-cloud-starter-netflix-hystrix-stream (который существует в v2.0.0M2, но не существует в окончательная версия RELEASE) в моем клиентском приложении, когда я использовал комбинацию spring-cloud-starter-netflix-hystrix и spring-cloud-netflix-hystrix-stream в клиентском приложении, это сработало хорошо.