求大神指教, 如何写一个全局recover,保证服务不会因为go程里面的panic整个挂掉

ywdhzxf · · 3669 次点击
另外再多啰嗦一句, 楼主的问题是出现了panic如何用recover不让整个服务挂掉。 你说了这么多,什么打印log, 什么释放资源,到底那些措施能让服务回复正常不带病运行给用户提供持续的正常服务? 怎么你英文文档看多了,是不是中文就看不大懂了? 所谓某些支线出现panic不影响整个服务不挂掉这就是个笑话。除非你不把他们编译到一起,分开做成一个函数编译出一个微服务。这样影响就会降低到最小。 打再多的log,用再多的的try catch,看再多的wiki也解决不了那么多的线上问题。出现了panic, 就算recover了,程序也会变得不稳定,很可能会后续出现一些莫名其妙的怪问题,还不如直接退出重启或者LoadBalance恢复服务还来得快一些。之后下大力气找到问题点解决掉。最终还是要回到测试和软件质量保证这个关键点上。
#27
更多评论
polaris
社区,需要你我一同完善!
没法全局,只能每个 gorouitne 自己 recover 自己。
#1
<a href="/user/polaris" title="@polaris">@polaris</a> 如果不考虑go程的话可以监听, 但是go程里面不知道咋监听...
#2