获得徽章 0
后端开发
后端开发
sourcegraph 这款 Chrome 插件真的很强大,让我在网页上看代码的时候能够获得近似于在 IDE 里看代码感觉。
chen_xi于2019-12-04 14:51发布的图片
chen_xi于2019-12-04 14:51发布的图片
15
赞了这篇沸点
关于优雅停机,这是个看似简单,但实际应用中有很多细节需要考虑的功能。
大部分优雅停机只是实现了停掉 Tomcat 容器,停掉 Dubbo 服务,但实际上要停掉的可能不止这些。

比如用 @Scheduled 开启了定时任务,如果停机的时候恰好在执行任务怎么办?Elastic Job 实现的分布式任务同理。

比如 Kafka 或者用 Redis 实现的消费队列,消费到一半怎么办?

比如 Spring Cloud 这时有新的请求进来了怎么办,大部分上线脚本中,只会帮你把 Nginx 摘掉流量,但 Spring Cloud 这种流量没法帮你摘掉。等于流量没摘干净。

再比如 @Async 启动的异步线程池,Spring Event 异步事件线程池等,是不是要等待执行完成?

凡此种种。而且要做到关闭资源的先后顺序,比如不能停掉定时任务前关闭数据库资源。

只有做到彻底把项目变成没有代码运行的,与外界失联的孤岛,才真正是「优雅停机」的追求。

我们的实现可供参考:启动一个哨兵线程,哨兵中有可重入读写锁,在需要保护的任务前获取读锁,try/finally 中释放读锁。
哨兵线程监听 signal 信号,捕捉到信号后开始停机流程。第一步获取写锁,写锁会等待所有读锁释放。写锁成功取得后,开始关闭异步线程池、主动在 Eureka 下线(如果是 Spring Cloud),关掉 Dubbo 容器,关掉 Kafka 线程池。最后调用 Spring 容器的 shutdown,由 Spring 再去回收 bean 和资源关闭。

如果有更好的实现或建议,欢迎讨论。
展开
1
阅读技术文章时的两大痛点:1. 代码不会自动软换行 (特别是在手机上阅读的时候); 2. 文章没有目录。
今天偶然发现 SimpRead 这款 Chrome 插件可以解决第二个痛点,能自动生成文章目录,贴心~
chen_xi于2019-11-16 10:20发布的图片
评论
赞了这篇沸点
I actually enjoy being alone. It makes me think about what's really important.
01010101于2019-11-10 19:12发布的图片
35
赞了这篇沸点
左耳朵耗子又说大实话了
江昪于2019-11-08 00:49发布的图片
21
赞了这篇沸点
有点像电子烟的作用,让不吸烟的人喜欢上吸烟🚬

用 Spock 写测试是真的舒服,亲测会上瘾。

文章链接:codingstyle.cn
chen_xi于2019-11-03 18:05发布的图片
评论
赞了这篇沸点
在消除 Java 方法声明中的 throws checked exception 上, 发现 Lombok 的做法好高明: 直接将 checked execption 强转成 runtime exception, 通过欺骗编译器, 最终抛出的还是原本的 exception, 这样就不用像有的工具类提供的解决方案那样, 还要将其 wrap 成一个 runtime exception.
展开
chen_xi于2019-10-12 21:38发布的图片
chen_xi于2019-10-12 21:38发布的图片
评论
IntelliJ IDEA 2019.2.2 卡的要死,中途还换回过一次 2.1,奈何太喜欢 2.2 的界面风格,又换回去了,下午卡的实在不行了,写代码会卡,中文输入时直接卡到爆,用它自带的activity monitor 一看 cpu 占用率最高时达到 百分之三百多(我的💻是四核的),网上也有人说2.2在mac下很卡的,但官方也没有明确的解决方案。
后来发现 2.3 已经出了,升级之后终于不卡了,可以用正常速度写代码了,瞬间有种破开云雾见月明的感觉😂
展开
22
后端开发
下一页
个人成就
文章被点赞 11
文章被阅读 4,573
掘力值 164
收藏集
5
关注标签
7
加入于