标签:
这次用中文写,表达得清晰些。
最近 看了几个程序,结合自己的思考,给出golang 服务其 优雅停机的处理方式。这里以http服务器为对象描述。
这里的"优雅",表示服务器有计划,按部就班的退出。具体表现在,友好地终止与客户端的连接;关闭其他活动的进程,线程,协成;完成资源的释放;完整的log。
1. 分类
服务器停机可以分两类:服务器主动停机 和 服务器被动停机。
1)服务器主动停机,即在没有外界影响(客户端调用)的情况下,服务器自发的停止。定时停机,以及Idle超时停机是常见的情形。下面 我主要描述Idle超时停机来描述。
2)服务器被动停机,即在外界条件影响下(外界命令控制,外界函数调用),服务器停止。 在这里讨论两张情况:client request 和 函数调用。
2. 下面以golang socket 服务器为例子描述两种停机情形。
1)服务器主动停机-Idle超时
2) 服务器被动停机
2.1) client sending requet
2.2) Stop()函数显式调用
标签:
原文地址:http://www.cnblogs.com/harrysun/p/4372944.html