个人
健康的猪
经常徘徊于温饱线上,此生亦无大志,唯望能做一只健康的猪。
展开
-
祖传代码“慢”的解决
祖传代码对我的折磨还没有完。啥啥不让装,profiler之类的想都别想,只有用最原始的命令行来解决。有一天,客户把我们这边的大领导怼得不行了,这边的领导让我帮着看一下这个技术问题。现象:就是有时候会再现用户登录的时候,非常的“慢”,当然这个慢是用户描述的,感觉像卡着了。第一步分析:这是个测试环境,资源分配的是比较少,但是不应该撑不住,但是本着严谨一点的态度,还是先排除了出问题的时候,CPU并不高 top -Hp,并且业务线程和GC的CPU也使用不高。第二步 看看thread原创 2022-05-09 16:49:44 · 328 阅读 · 0 评论 -
祖传代码的OOM
有一个祖传代码出OOM了,我已经去弄了几回了,每次原因还不一样,随意写一个,以后一定得远离这些代码了 这个图其实已经很清晰了,不过我们看一下更有意思的这是栈上的,并不是释放的问题。解决这个问题 1限制个数(pdf转image) 2 压缩一下图片吧...原创 2022-05-02 20:32:30 · 268 阅读 · 0 评论 -
ShardingSphere实现多租户
某项目需要实现多租户,当然这里谈论的资源主要是数据库。 评估的时候主要从数据量上去评估,结论是目前只需要一个库。但是有16张表需要进行水平切分从而容纳56个接入公司。目标是为了代码尽可能少改动。评估出来大概是分为 1 表内加字段的区分多租户的表 2 表水平切分的 3 跨多表的我们采用ES来做查询。这里主要是谈第2块 ,实现是基于ShardingSphere的Hint模式。大概是读了一下,官方给的starter对我们这种场景不可用,因为我们是现存的十多个微服务尽量少改动。所以基本上做的事就原创 2022-03-30 21:00:40 · 2335 阅读 · 0 评论 -
RocketMQ的简单分发的设计
有这样一个业务场景,我们需要整合RocketMQ,引入了maven<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <version>2.2.1</version></dependency>这个可以查看一下官方的文..原创 2021-11-18 20:31:15 · 273 阅读 · 0 评论 -
玩转@FeignClient的Decoder
公司有个需求,就是可以实现如下调用 这两个方法 最大的区别就是返回值,一个是包装类,一个是非包装类。 我翻了一会源码,觉得用Decoder解决比较好。 开启懒人模式,有别人写好的我拿来改一下就行,没有我就自己撸呗。 找到了一个,他大概是这样写的 本来他这个和我的业务也不太一样,我一看这直接去读原始的响应,然后开始Decoder,我觉得这个路子有点野。 于是先翻一下源码,源码默认的decoder 仔细读了一下,如果直接拿...原创 2021-07-16 18:13:21 · 11494 阅读 · 2 评论 -
也说Springboot的Schedule
按理说,这玩意简单易用,不值得一提。 事件是这样的,有个同事有几个简单的定时器,因此不需要上升到分布式,或者单独做一个定时器任务管理系统,于是就借用springbootk的@EnableScheduling来开启任务调度,一共大约三个定时器。 过了几天同事说,这玩意有时候灵,有时候不灵,我想了想,问他一个问题,springboot这块的源码我没翻过,但是所有的schedule系统,至...原创 2020-03-07 23:51:10 · 132 阅读 · 0 评论 -
玩转thrift转http之进一步完善
上一篇文章中已经完成thrift转http,其实这个在公司内部多用于一些测试或者是一些调用不关心性能的场景下使用,毕竟json-rpc无论在编码还是在寻址上确实是效率不是在高。 用过swagger都知道有时候我们还是需要将参数的请求和响应自动列出来。 为了完成以上功能,其实也很简单。 可在背后用字节码工具悄悄增加一个接口,然后将这个接口自动添加到用户定义的接口中,然后利用反射...原创 2020-01-10 18:40:53 · 531 阅读 · 0 评论 -
玩转thrift转http
1 有时候我们为了thrift的也能自动支持http访问,需要处理一下。于是想到了json-rpc,找了一下,有人已经有人同样解决过:https://www.jianshu.com/p/a757453523ae这个文章我看了,方案对我没什么太大的意义(因为我不想改开源的源码,这样不方便升级),给我的帮助是提前知道有两个问题需要解决(第一次玩jsonrpc),两个问题:1 thrift生...原创 2020-01-08 19:48:05 · 1312 阅读 · 0 评论 -
thrift客户端复用链接性能掉坑记之源码分析
这是分析长链掉坑里源码:accept之后只注册了read 这个不是最重点,看看读吧,这是重点org.apache.thrift.server.AbstractNonblockingServer.FrameBuffer#read 基本是正常读了一个Frame后就不读了,就是不关注读的事了重点来了,什么时候再开始呢?我们来看下写需要判断 buffer的状...原创 2018-10-29 12:02:59 · 430 阅读 · 0 评论 -
thrift客户端复用链接性能掉坑记
1 这次thrift是为了在一个特殊的场景下,我想在客户端来个复用,其实和dubbo在客户端复用连接是一个道理.直接用netty撸一个客户端出来(因为rpc方法只有两个).很快撸出来了,能跑...爽.2 嗯,拿出jmeter出来试试调用速度,毕竟不要跟我说单线程能跑就是能跑了..... 我把业务场景用一个sleep 500-1000毫秒来模拟. jmeter的截图没有了,现在写...原创 2018-10-23 11:59:30 · 1442 阅读 · 0 评论 -
thrift写程序时的小问题定位
在这个公司没像以前用thrift多了,最近有需求,直接撸了一串小代码 thrift+zk简单来个服务发现+加权的负载均衡+支持客户端长链接复用+支持客户端每一个请求一个长链接(连接池)+简单的实时统计到了我这年纪,写代码越来越喜欢少debug,尽量在写的时候就能跑起来,剩下的就是压测+调优.但是是一个小手抖,遇见了个小问题,问题的描述: 写完代码跑的时候,总是服务端提示无法...原创 2018-09-29 10:57:17 · 175 阅读 · 0 评论 -
java中日志框架的一点小分析
这个话题,估计大多数人没兴趣.因为觉得这个太容易了,直接调用不就完了. 但是呢,以下分析是我当年刚参工作两三年时看到日志调用时候的一点疑问,当时懒惰,没整理出答案.现在整理一下,以备日后查看. 1 这个问题很我觉得有意思是对于写一些中间件或者小框架的人还是很有帮助的.问题如下,对于项目中没有清理过maven的依赖(毕竟有中间依赖,确实会导致同时出现)的情况下,同时出现如下两个&...原创 2018-08-02 11:20:45 · 174 阅读 · 1 评论