Проблемы с турбиной панели управления Hystrix с использованием FileBasedInstanceDiscovery - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь настроить приборную панель с турбиной.Я не использую Eureka и хочу использовать FileBasedInstanceDiscovery.Я пытаюсь настроить это, но, похоже, следование онлайн-документации не работает.Он всегда пытается использовать клиент обнаружения Eureka.Я попытался исключить eureka из моего pom, но затем он возвращается к другому клиенту обнаружения. CommonsInstanceDiscovery

Вот мое приложение.Кроме того, для filePath для моих имен хостов турбины, где он начинает искать?Могу ли я иметь файл в моей директории ресурсов моего фляги?

вот мои зависимости файла pom:

<properties>
    <java.version>1.8</java.version>
    <spring-cloud.version>Greenwich.SR1</spring-cloud.version>
</properties>

<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-services</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-hystrix-dashboard</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-turbine</artifactId>
        <exclusions>
            <exclusion>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-dependencies</artifactId>
            <version>${spring-cloud.version}</version>
            <type>pom</type>
            <scope>import</scope>
        </dependency>
    </dependencies>
</dependencyManagement>

1 Ответ

0 голосов
/ 15 мая 2019

Некоторая документация неясна и противоречива для турбины, я думаю, это потому, что есть проект spring-cloud-netflix и отдельный проект турбины. В любом случае, если вы создаете приложение с весенней загрузкой, это свойство бесполезно:

InstanceDiscovery.impl=com.netflix.turbine.discovery.FileBasedInstanceDiscovery

Если вы хотите изменить реализацию InstanceDiscovery, это довольно просто, просто создайте bean-компонент, который реализует InstanceDiscovery следующим образом:

@Bean
public InstanceDiscovery instanceDiscovery() {
    //choose either one of the provided implementations from spring or
    //create your own
    return new ConfigPropertyBasedDiscovery();
    //return new FileBasedInstanceDiscovery();
}

Убедитесь, что вы поместили это в класс @Configuration. Первоначально у меня был мой только в моем классе SpringBootApplication, но это не позволяет вам переопределить реализацию по умолчанию.

...