spring cloud 实践坑点记录

本文总结了使用SpringCloud微服务框架过程中遇到的问题,包括性能监控时的聚合问题及配置文件服务器刷新时的注意事项。提醒开发者关注应用名大小写敏感性和性能信息聚合方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用spring cloud 微服务框架有一段时间了有一些坑点在这里给大家记录一下希望大家用得着

1、当我们使用聚合性能监控的时候,我们采用 rabbitmq作为消息中间件来收集性能信息最后在使用TurbineStream将信息进行聚合

  这个工具聚合是根据“应用名+方法名”进行求和汇总的

  如下代码:

  

@HystrixCommand(commandProperties = {
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "20000") }, threadPoolProperties = {
                    @HystrixProperty(name = "coreSize", value = "64") }, threadPoolKey = "test1")
    @GetMapping("/testpro3")
    public int getStringtest2(){

        //throw new Exception("ddd");
        return 1;
    }

  这里的聚合就是“应用名+getStringtest2”

  

  这样的话就会存在一个问题在不同的两个类都是被@RestController标记并且都对外发布接口的url不同功能也不同

  如下:

  

@RestController
public class testRest1 {
    @HystrixCommand(commandProperties = {
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "20000") }, threadPoolProperties = {
                    @HystrixProperty(name = "coreSize", value = "64") }, threadPoolKey = "test1")
    @GetMapping("/testpro3")
    public int getStringtest2(){

        //throw new Exception("ddd");
        return 1;
    }
}
@RestController
public class testRest1 {
    @HystrixCommand(commandProperties = {
            @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds", value = "20000") }, threadPoolProperties = {
                    @HystrixProperty(name = "coreSize", value = "64") }, threadPoolKey = "test1")
    @GetMapping("/testpro4")
    public int getStringtest2(){

        //throw new Exception("ddd");
        return 1;
    }
}

  假如像上面的代码在一个工程里面就会吧这两个方法的性能进行聚合,可能我们在项目中很少出现这种情况但是 墨菲定律 有可能发生的事情就一定会发生

2、配置文件服务器刷新坑点

  当我们的spring boot应用使用配置中心进行配置加载的时候,当我们的配置文件更新的时候去刷新通知我们的URL通常是这样的

  10.10.12.51:8888/bus/refresh?destination=spring-cloud-demo:8082进行post请求

  上面的url是没问题的但是我们可能会看到EUREKA注册中心对应用名全是大写的 如下

  

  这样就会给我们一个误导是不是用全部是大写的应用名也可以啊??向下面这样

  

10.10.12.51:8888/bus/refresh?destination=SPRING-CLOUD-DEMO:8082

  经过测试这样是不行的,所以请大家注意

 

服务监控信息到底是“主动推送”还是“被动扫描”???

spring boot +RabbitMQ +InfluxDB+Grafara监控实践

 

转载于:https://www.cnblogs.com/zhyg/p/9450300.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值