Dubbo
frcoder
FRLH
展开
-
记录一次线上内存问题的排查过程
所用工具MAT、IDEA 一、发现问题 线上有一个微服务内存已经将近90%,回收不过来,导致频繁gc,cpu也跟着从20%升至40%。 先临时升级机器内存,情况得到缓解,内存回到50%,cpu也降了下来,但是内存还在缓慢增长。 二、定位问题 第一步:怀疑有内存泄露。连续2天,dump了2份该微服务内存。 发现有一个ConcurrentHashMap持有的内存特别大,占整个堆内存的一半。查看这个类下具体的对象内容,发现它的key是dubbo.monitor下的Statistics类。 查看dubbo源.原创 2020-05-09 12:19:40 · 1678 阅读 · 1 评论 -
Dubbo + Zookeeper + DubboAdmin
1. Dubbo、Zookeeper、DubboAdmin之间的关系 Dubbo是一个RPC框架,它有自己的协议 各个使用了Dubbo框架的微服务要相互通信,需要有一个注册中心,官方推荐的注册中心就是Zookeeper Zookeeper是一个服务注册中心,不仅仅是Dubbo,也可以接受其他协议的注册 Zookeeper只是后台服务,没有前台管理界面,所以为了可以用界面来管理在Zookeepe...原创 2018-06-27 16:53:08 · 335 阅读 · 0 评论 -
Dubbo常见问题
1. Dubbo客户端json解析异常 Dubbo框架下,Dto对象必须含有无参构造函数,否则http直接请求没问题,但是Dubbo客户端调用会报json解析异常的错误。 也就是说Dto中: 可以没有构造函数(java类如果没有构造函数,则默认生成无参构造函数); 如果有自定义的构造函数,则一定要显式定义一个无参构造函数。 ...原创 2019-03-06 18:11:58 · 400 阅读 · 0 评论 -
关于springboot+resteasy+dubbo的组合中,服务中报500异常时,前端却返回404错误码
原因 服务报500异常 springboot如果没有自定义异常处理,就会重定向到/error路径 如果没有resteasy,这个重定向会交给springboot处理,则会返回springboot自带的错误页面 如果有resteasy,这个重定向会交给resteasy处理,而resteasy会真的去重定向,这时如果程序里,没有/error路径,就会返回404 解决方案 RESTEasy中的通用异...原创 2019-05-30 15:55:35 · 537 阅读 · 0 评论