【问题标题】:How to enable "hystrix.stream" in Spring Boot 2.0?如何在 Spring Boot 2.0 中启用“hystrix.stream”?
【发布时间】:2018-07-04 00:48:18
【问题描述】:

我似乎找不到如何在 Spring Boot 2.0 中启用 hystrix.stream。 当我尝试通过转到http://localhost:8080/hystrix.stream 来访问该文件时,我得到了一个 404 file not found 错误。

控制器中调用的方法:

@GetMapping("/")
public Mono<String> index(Model model) {
    model.addAttribute("images",
            imageService
                    .findAllImages()
                    .map(image -> new HashMap<String, Object>() {{
                        put("id", image.getId());
                        put("name", image.getName());
                        put("imageComments", commentHelper.getComments(image));
                }})
    );
    return Mono.just("index");
}

CommentHelper 代码,注意@HystrixCommand 正在被使用:

@Component
public class CommentHelper {
    private final RestTemplate restTemplate;

    CommentHelper(RestTemplate restTemplate) {
        this.restTemplate = restTemplate;
    }

    @HystrixCommand(fallbackMethod = "defaultComments")
    public List<Comment> getComments(Image image) {
        return restTemplate.exchange(
                "http://COMMENTS/comments/{imageId}",
                HttpMethod.GET,
                null,
                new ParameterizedTypeReference<List<Comment>>() {},
                image.getId()).getBody();

    }

    public List<Comment> defaultComments(Image image) {
        return Collections.emptyList();
    }
}

这些是 build.gradle 的依赖项:

dependencies {
    compile 'org.springframework.boot:spring-boot-starter-webflux'
    compile 'org.synchronoss.cloud:nio-multipart-parser'
    compile 'org.springframework.boot:spring-boot-starter-data-mongodb-reactive'
    compile 'org.springframework.boot:spring-boot-starter-thymeleaf'
    compile 'org.springframework.boot:spring-boot-starter-actuator'
    compile 'org.springframework.boot:spring-boot-devtools'

    compile 'org.springframework.cloud:spring-cloud-starter-stream-rabbit'
    compile 'org.springframework.cloud:spring-cloud-stream-reactive'

    compile 'org.springframework.cloud:spring-cloud-starter-netflix-eureka-client'
    compile 'org.springframework.cloud:spring-cloud-starter-netflix-hystrix'

    testCompile 'org.springframework.boot:spring-boot-starter-test'
    testCompile 'io.projectreactor:reactor-test'

    compile 'junit:junit:4.12'
}

当我转到http://localhost:8080/application/features时,您可以看到Hystrix已启用,如下所示:

{
    "enabled": [
        {
            "type": "com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect",
            "name": "Hystrix",
            "version": "1.5.12",
            "vendor": null
        },
        {
            "type": "com.netflix.discovery.EurekaClient",
            "name": "Eureka Client",
            "version": "1.8.4",
            "vendor": null
        },
        {
            "type": "org.springframework.cloud.client.discovery.composite.CompositeDiscoveryClient",
            "name": "DiscoveryClient",
            "version": "2.0.0.M3",
            "vendor": "Pivotal Software, Inc."
        },
        {
            "type": "org.springframework.cloud.netflix.ribbon.RibbonLoadBalancerClient",
            "name": "LoadBalancerClient",
            "version": "2.0.0.M3",
            "vendor": "Pivotal Software, Inc."
        },
        {
            "type": "com.netflix.ribbon.Ribbon",
            "name": "Ribbon",
            "version": "2.2.2",
            "vendor": null
        }
    ],
    "disabled": []
}

这里到底出了什么问题? 如果有帮助,我将尝试遵循此处找到的代码

https://github.com/learning-spring-boot/learning-spring-boot-2nd-edition-code/tree/master/7/part2

我正在学习《Learning Spring Boot 2nd Edition》一书。

【问题讨论】:

  • 关于编辑:询问“请帮助我”的问题往往是寻求高度本地化的指导,或者在某些情况下,是不适合我们问答形式的持续或私人帮助。它也相当模糊,最好用更具体的问题代替。请阅读Why is “Can someone help me?” not an actual question?

标签: java spring-boot hystrix


【解决方案1】:

【讨论】:

【解决方案2】:

您需要根据this issue在application.properties中包含management.endpoints.web.exposure.include=*

【讨论】:

    【解决方案3】:

    您需要在 application.properties 中添加management.endpoints.web.base-path=/。例如,check this out

    路径必须为空,因此正确注册为/actuator/hystrix.stream

    【讨论】:

    猜你喜欢
    • 2017-07-12
    • 2018-08-25
    • 2019-09-06
    • 2020-05-29
    • 1970-01-01
    • 2017-03-19
    • 1970-01-01
    • 2020-09-13
    • 2016-12-01
    相关资源
    最近更新 更多