首页
首页
沸点
课程
直播
活动
竞赛
商城
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
sunlong
掘友等级
Java工程师
|
原子弹
获得徽章 0
动态
文章
专栏
沸点
收藏集
关注
作品
赞
10
文章 8
沸点 2
赞
10
返回
|
搜索文章
sunlong
赞了这篇文章
顺天同学
java开发工程师
·
2年前
关注
设计一个简单的点赞功能
新增功能:点赞 现在几乎所有的媒体内容,无论是商品评价、话题讨论还是朋友圈都支持点赞,点赞功能成为了互联网项目的标配,那么我们也尝试在评价系统中加入点赞功能,实现为每一个评...
95
12
分享
sunlong
关注了
程序员cxuan
Java工程师 @原子弹
sunlong
关注了标签
测试
Java工程师 @原子弹
sunlong
关注了标签
数据库
Java工程师 @原子弹
sunlong
关注了
crossoverJie
Java工程师 @原子弹
sunlong
关注了
猪哥66
Java工程师 @原子弹
sunlong
赞了这篇文章
java酱
后端工程师 @华为
·
4年前
关注
干货!java代码性能优化,提高健壮性
我们在后端开发中,经常会遇到各种“坑”,比如大家最熟悉的空指针异常、session失效等等,其实很大原因在于开发过程中并没有很好的将用法与实际相结合,如果我们能注意一些代码...
173
35
分享
sunlong
赞了这篇文章
已注销
4年前
每个程序员都可以「懂」一点 Linux
(本文根据马蜂窝技术研发团队内部分享整理,搜索马蜂窝技术公众号,后台回复 「linux」获取 PPT 全文。) 大家好。我先简单介绍一下自己,我是李鸿,目前负责马蜂窝内容中...
48
14
分享
sunlong
关注了
已注销
Java工程师 @原子弹
sunlong
赞了这篇文章
刘志国
Java @成都小鸡叫叫
·
5年前
关注
子弹短信内部技术分享:Redis
Redis 是一个内存型「数据库」,除存储之外,它还有许多强大的命令,使之远远超出了数据库的定义,所以官方称之为「data structure store」,数据结构存储系...
232
22
分享
sunlong
赞了这篇文章
晓双
日常搬砖🧱 @公众号:俩右
·
4年前
关注
「Java8系列」神秘的Lambda
第一次接触lambda表达式时,感觉这个东西挺神奇的(高逼格),一个()加->就能传递一段代码,当时公司项目中接手同事的代码,自己也对java8的特性不了解,看的也是一头雾...
46
3
分享
sunlong
赞了这篇文章
JaJian
公众号 @码辣架构
·
4年前
关注
分布式全局ID生成方案
传统的单体架构的时候,我们基本是单库然后业务单表的结构。每个业务表的ID一般我们都是从1增,通过AUTO_INCREMENT=1设置自增起始值,但是在分布式服务架构模式下分...
131
8
分享
sunlong
关注了
JaJian
Java工程师 @原子弹
sunlong
关注了
漫话编程
Java工程师 @原子弹
sunlong
关注了
石杉的架构笔记
Java工程师 @原子弹
sunlong
关注了
Anwen
Java工程师 @原子弹
sunlong
赞了这篇沸点
刘志国
Java @成都小鸡叫叫
·
5年前
举报
放弃用 Redissan 自旋锁。
互联网大部分场景下的分布式锁,都是不需要自旋的,是获取不到锁需要马上失败的。
而不理解 Redisson 锁原理的,会经常滥用它,导致表单重复提交得到了处理、至多执行一次的任务被反复执行等问题。
Redisson 锁可以近似理解成 Java 本身的锁或同步语句块,而实际上它也是实现了 Lock 接口。使用之前需要考虑清楚,这段代码确实要在分布式下同步执行?
展开
赞过
分享
2
2
sunlong
赞了这篇沸点
刘志国
Java @成都小鸡叫叫
·
5年前
举报
关于优雅停机,这是个看似简单,但实际应用中有很多细节需要考虑的功能。
大部分优雅停机只是实现了停掉 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
4
sunlong
关注了
一颗桃子
Java工程师 @原子弹
sunlong
关注了标签
后端
Java工程师 @原子弹
下一页
关注了
9
关注者
0
收藏集
0
关注标签
10
加入于
2019-02-15