[求推荐] 请大神推荐稳定的 golang 开源 TCP 服务端框架,生产环境访问量每秒一两百,自己写的一个连接协程挂了整个程序也 panic 了
如题,小弟需要一个 TCP 服务端接受和处理请求,请求内容是解析 redis 持久化文件和删除现有 Redis 内存库的记录,每秒访问量在几十到一两百,自己写的程序在新连接到来开了新协程后容错没处理好,例如新协程打开文件出错整个程序也宕了,例如新协程建立 redis 连接出错整个程序也宕了。
请各位帮忙推荐有没有现成的框架?先谢谢了
----------------------- 以下是精选回复-----------------------
答:golang 写 tcp 已经不能再简单了,别的框架好不到哪里去。
找到问题原因来,而不是想着换个框架就能解决问题。
例如,打开文件为何出错? redis 连接为何出错?
就算出错,为何宕了?是程序问题,还是滥用了 panic?
答:谢谢 jameshuazhou 的回复
答:一秒 1 两百 基本上不存在压力吧
处理好文件、redis 读写就行了
可以初始化一个连接池,读写文件的时候如果可能有冲突记得加锁解锁
打开文件出错 或者 redis 连接出错 都可以捕获错误并安全处理的 合理的处理不会导致整个程序挂掉
答:感谢 lwldcr 回复, 您的建议对我帮助很大
答:go 不是“显示异常”的错误处理方式,而是传统 C 语言 return error 的方式。
所以简单的处理方法,就是不要忽略任何 error,并且合适的处理。
你能写出容易 panic 的代码,任何框架都是枉然,顶多给你 defer 一下。
认真,严谨的去 review 代码
答:处理连接的协程最外层捕获 panic,可以防止单个连接 panic 造成整个进程崩溃。
但是虽然一般都有这个,但是实际可靠的代码根本不应该触发这个。
答:框架救不了低能者
答:压力到了就上负载均衡啊,没必要太费精力去追求过高的单机性能
网站模板库 » [求推荐] 请大神推荐稳定的 golang 开源 TCP 服务端框架,生产环境访问量每秒一两百,自己写的一个连接协程挂了整个程序也 panic 了
0条评论