你们的优雅停机真的优雅吗? | 京东云技术团队
1.前言 emm,又又遇到问题啦,现有业务系统应用上线存在窗口期,不能满足正常任务迭代上线。在非窗口期上线容易导致数据库、mq、jsf等线程中断,进而导致需要手动修单问题。故而通过添加优雅停机功能进行优化,令其在上线前选择优雅停机后,会优先断掉新流量的涌入,并预留一定时间处理现存连接,最后完全下线,可有效扩大上线预留窗口时间并降低上线期间线程中断,进而降低手动修单。可是什么是优雅停机呢?为什么现有的系统技术没有原生的优雅停机机制呢?通过调研整理文章如下。 2.何为优雅停机? • 优雅停机是指为确保应用关闭时,通知应用进程释放所占用的资源。 • 线程池,shutdown(不接受新任务等待处理完)还是shutdownNow(调用Thread.interrupt进行中断)。 • socket链接,比如:netty、jmq、fmq。(需要着重处理) • 告知注册中心快速下线,比如jsf。(需要着重处理) • 清理临时文件。 • 各种堆内堆外内存释放。 总之,进程强行终止会带来数据丢失或者终端无法恢复到正常状态,在分布式环境下可能导致数据不一致的情况。 3.导致优雅停机不优雅的元凶之-k...