一些意见

mioobusiness 2021-9-3 539

目前遇到一些可以优化的地方,只关于服务端

1、专业版,偶尔出现假死的情况,客户端连接不上,消息无法发送,但资源占用、日志均表现正常。目前能定位的是信息量大时,客户端调用api频率过高可能出现

2、专业版,这边是强依赖用户状态的,目前如果客户端断网,服务端需要超过十分钟才能感知,据我所知,商业IM厂商一般是一分钟

3、专业版,消息缓存配置不当会导致致命的OOM!默认是缓存7天100万条消息,在并没有那么大的内存或平均消息体比较大时这是必杀,这边因为这个问题损失惨重

4、专业版,消息保留3年这个时间希望改成可自定义配置,虽然可以自己去数据库删,但这很危险……

5、社区版,调用api频率限制不准确,远远低于上限就被限制了

6、社区版,代码是真滴渣渣

7、如果可以,在数据库前面加一层持久化缓存吧,每条消息都硬刚数据库,有点吓人

希望野火越做越好

最新回复 (1)
  • HeavyRain 2021-9-3
    引用 2
    感谢您给我们提了这么多宝贵的建议:
    1,出现假死是什么情况,当出现时请给我们提供一下客户端和服务器的日志供我们分析。
    2,普通的结束,比如杀掉应用,后台冻结等都有tcp长连接释放,但如果飞行模式则服务器无法感知客户端的链路问题,此时要依靠心跳超时,我们默认1.5个心跳周期认为超时,也就是7分半钟,这种情况下如果1分钟如果感知到断开,我们就比较怀疑他们的心跳间隔了。后一种情况比较少见,正常使用一般都能立即感知到。
    3,这个我们最近也在调整,已经调整成按内存比例来缓存消息,或者你们手动改成希望的数据。
    4,时间默认是3年,服务器会自动删除3年之前的旧消息。如果想要更短时间,可以写个程序来删除。

    项目紧时间短,所以代码细节上就没有太高要求,功能能用没有bug就可以了
返回