Как активировать конечную точку /turbine.stream в автономном приложении Turbine - PullRequest
0 голосов
/ 28 августа 2018

Я пытаюсь создать отдельное приложение для сбора потока 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);
    }

}

Содержание Applicaiton.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

И зависимости maven:

<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 Ответ

0 голосов
/ 06 сентября 2018

Я бы посоветовал вам проверить шаги конфигурации ниже:

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

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

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

...