kill -9 PID 強制關閉造成 dubbo消費方無法消費

我們在dubbo時,我們項目由dubbo的版本由2.7.0升級到2.7.5。出現了dubbo無效消費的情況,經過檢查發現zookeeper 裏面出現大量相同的註冊信息。dubbo是通過JDK的ShutdownHook來完成優雅停機的,所以如果我們使用”kill -9 PID”等強制關閉指令,是不會執行優雅停機的,只有通過”kill PID”時,纔會執行。服務強制停止造成大量相同註冊信息積壓在zookeeper中。

當dubbo執行優雅停機時:

服務提供方:
停止時,先標記爲不接受新的請求,新請求過來時直接報錯,讓客戶端重試其他機器;
然後,檢測線程池中的線程是否正在運行,如果有,等待所有線程執行完成,除非超時,則強制關閉;

服務消費方:
停止時,不在發起新的調用請求,所有新的調用在客戶端即報錯;
然後,檢測有沒有請求的相應還沒有返回,等待相應返回,,除非超時,則強制關閉;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章