Как активировать конечную точку /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

ты не должен получать "[]"в вашем браузере, если все хорошо.

После того, как вы увидите ответ на конечной точке кластера, вы сможете увидеть подробности на приборной панели, когда укажете на приложение турбины.

Другие вопросы по тегам