用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监控实践

spring cloud 实践坑点记录的更多相关文章

  1. spring cloud feign 坑

    feign是啥? 很多人可能对于feign 不是很熟悉,可以看一下其他网友的实例分享:spring cloud feign简介 如果觉得上面这个比较难的话,还有一个简单入门的:spring cplou ...

  2. Spring Cloud实践:降级、限流、滚动、灰度、AB、金丝雀的实现思路

    端口:8888,方便起见直接读取配置文件,生产环境可以读取git.application-dev.properties为全局配置.先启动配置中心,所有服务的配置(包括注册中心的地址)均从配置中心读取. ...

  3. Spring Cloud实践之服务注册与发现Eureka

    一.简述: 服务提供者producer与服务消费者consumer都注册到eureka server,然后服务consumer在其应用内直接调用producer的服务名来调用服务,而不是像之前一样调用 ...

  4. Spring Cloud实践之集中配置Spring-config

    将一个系统中各个应用的配置文件集中起来,方便管理. import org.springframework.boot.SpringApplication; import org.springframew ...

  5. 关于Spring Cloud Feign的一些记录!

    学习Spring Cloud Feign过程中,相关资料都会反复强调:微服务调用的话(@FeignClient)  客户端方法的返回值和服务端方法的返回值还有方法名之类的都是要求一致的! 关于方法名是 ...

  6. spring-cloud-Zuul学习(四)【中级】--自定义zuul Filter详解【重新定义spring cloud实践】

      实现自定义zuul Filter 方法很简单,只要继承ZuulFilter跟加入到spring IOC容器即可,zuulFilter是一个抽象类,里面包含以下方法需要我们实现: String fi ...

  7. spring-cloud-Zuul学习(一)【基础篇】--入门案例【重新定义spring cloud实践】

                                                                                                    -- 2 ...

  8. spring-cloud-Zuul学习(三)【中级篇】--Filter链 工作原理与Zuul原生Filter【重新定义spring cloud实践】

    这里开始记录zuul中级进阶内容.前面说过了,zuul主要是一层一层的Filter过滤器组成,并且Zuul的逻辑引擎与Filter可用其他基于JVM的语言编写,比如:Groovy. 工作原理 Zuul ...

  9. spring-cloud-Zuul学习(二)【基础篇】--典型配置【重新定义spring cloud实践】

    -- 2019-04-15 20:22:34 引言 上一节是一个最基本的zuul网关实例,它是整个spring-cloud生态里面“路由-服务”的一个缩影,后续也就是锦上添花.这节主要讲述zuul的一 ...

随机推荐

  1. C#面向对象之封装。

    封装是面向对象的基础和重要思想之一,今天具体的了解封装这一特性后发现其实自己已经接触过很多关于封装的内容了. 一.什么是封装. 封装的概念:将具体的实现细节装到一个容器中,封闭或隐藏起来(使用访问修饰 ...

  2. 记录.net使用ueditor富文本编辑器

    UEditor是什么 最近在在项目的时候使用到了百度的富文本编辑器.官网有详细的操作流程文档.这里我只是记录项目中常用到的一些事件.以便日后可以方便查询. UEditor是百度的一个javascrip ...

  3. Font Awesome 供更精准的图标搜索

    https://www.thinkcmf.com/font/font_awesome/icon/address-book

  4. IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS

    IIS 里 安装好 SSL 证书后,如何实现 在浏览器里录入 http://www.xxx.com,会自动跳转到 https://www.xxx.com 呢. 首先,下载并安装 IIS 扩展: URL ...

  5. eclipse使用svn

    主干(trunk).分支(branch ).标记(tag) 用法示例 + 图解   以svn为例,git的master相当于trunk,dev分支相当于branches --------------- ...

  6. git error: RPC failed; result=56, HTTP code = 200

    突然发现git pull 后出现几次都无果,百度后, 发现是curl的postBuffer 默认值较小的原因,配置下这个值,就不会出现该错误了.解决如下: git config --global ht ...

  7. epoll代码示例

    #include <errno.h> #include <string.h> #include <stdlib.h> #include <sys/types. ...

  8. Cheating sheet for vim

  9. 搞清Image加载事件(onload)、加载状态(complete)后,实现图片的本地预览,并自适应于父元素内(完成)

    onload与complete介绍 complete只是HTMLImageElement对象的一个属性,可以判断图片加载完成,不管图片是不是有缓存:而onload则是这个Image对象的load事件回 ...

  10. 洛谷P3199 [HNOI2009]最小圈(01分数规划)

    题意 题目链接 Sol 暴力01分数规划可过 标算应该是这个 #include<bits/stdc++.h> #define Pair pair<int, double> #d ...