不要小看小小的 emoji 表情😂 前言好久没更新了,最近事比较多,或许下个月就会恢复到正常的发文频次。 这篇文章得从一个 emoji 表情开始,我之前开源的一个 IM 项目中有朋友提到希望可以支持 emoji 表情传输。 https://github.com/crossoverJie/cim/issues/12 正好那段时间有空,加上这功能看着也比较简单准备把它实现了。 2019-09-10 cs #emoji #unicode #utf-8 #ascii
如何参与一个顶级开源项目 前言最近个人事情比较多(搬家、换工作、短暂休息)所以一直也没有顾得上博客更新,恰好最近收到一封邮件提醒了我。 也是时候写一篇文章来聊聊参与开源项目的事(最近也确实进入了笔荒期)。 ps:第一次收到这样的中秋节礼物,加上 Dubbo 社区的活跃及阿里的重视度,还在做 PRC 或微服务技术选型的朋友可以考虑 Dubbo。 2019-08-19 open source #dubbo #thread #多线程
一次难得的分库分表实践 背景前不久发过两篇关于分表的文章: 一次分表踩坑实践的探讨 分表后需要注意的二三事 从标题可以看得出来,当时我们只做了分表;还是由于业务发展,截止到现在也做了分库,目前看来都还比较顺利,所以借着脑子还记得清楚来一次复盘。 2019-07-24 架构 #db
设计一个全局异常处理器 前言最近稍微闲了一点于是把这个半年都没更新的开源项目 cicada 重新捡了起来。 一些新关注的朋友应该还不知道这项目是干啥的?先来看看官方介绍吧(其实就我自己写的😀) cicada: 基于 Netty4 实现的快速、轻量级 WEB 框架;没有过多的依赖,核心 jar 包仅 30KB。 2019-07-15 cicada > 轮子 #Java #HTTP #Netty
What?一个 Dubbo 服务启动要两个小时! 前言前几天在测试环境碰到一个非常奇怪的与 dubbo 相关的问题,事后我在网上搜索了一圈并没有发现类似的帖子或文章,于是便有了这篇。 希望对还未碰到或正在碰到的朋友有所帮助。 2019-07-05 问题排查 #Java #Thread #Dubbo
常见的集合容器应当避免的坑 前言前不久帮同事一起 review 一个 job 执行缓慢的问题时发现不少朋友在撸码实现功能时还是有需要细节不够注意,于是便有了这篇文章。 ArrayList 踩坑1234567List<String> temp = new ArrayList() ;//获取一批数据List<String> all = getData();for(String str : all) 2019-07-04 Java 进阶 #Java #ArrayList #LinkedList
又一次生产 CPU 高负载排查实践 前言前几日早上打开邮箱收到一封监控报警邮件:某某 ip 服务器 CPU 负载较高,请研发尽快排查解决,发送时间正好是凌晨。 其实早在去年我也处理过类似的问题,并记录下来:《一次生产 CPU 100% 排查优化实践》 不过本次问题产生的原因却和上次不太一样,大家可以接着往下看。 2019-06-18 问题排查 > Java 进阶 #Java #Thread
分表后需要注意的二三事 前言本篇是上一篇《一次分表踩坑实践的探讨》,所以还没看过的朋友建议先看上文。 还是先来简单回顾下上次提到了哪些内容: 分表策略:哈希、时间归档等。 分表字段的选择。 数据迁移方案。 2019-06-13 架构 #db
线程池没你想的那么简单(续) 前言前段时间写过一篇《线程池没你想的那么简单》,和大家一起撸了一个基本的线程池,具备: 线程池基本调度功能。 线程池自动扩容缩容。 队列缓存线程。 关闭线程池。 2019-06-06 并发 #concurrent #ThreadPool
年轻人的第一篇博客 前言写这篇文章的前因是有位读者留言提到了相关的话题,其实在之前有一篇《如何成为一位「不那么差」的程序员》时有简要提到但没有细说;这次就借这个机会好好聊聊这个事情的前因后果。 2019-05-24 小技巧 #博客