在Etherpad中,我们广泛使用SocketIO(自从很早以前),非常感谢团队提供了这样一个有用的东西 :)
Etherpad是一个nodejs项目。
我对SocketIO的问题可能是由于我的错误配置或理解不足,但经过大量测试工具生成、内存设置等调整后,我们仍然得到了令人沮丧的每秒最大消息数量,只达到了10k标记。
在线阅读的信息显示,切换到ws可能更高效,但在我们的情况下,瓶颈不是协商(最终成为websockets),而是服务器处理的每秒消息数量。
我不愿意尝试其他软件包,所以我想来这里寻求一些见解或要尝试的事情,看看是否可以通过一些方法显著提高性能。通常的node技巧(访问更多硬件[ram / cpu])会有所帮助,但仍然感觉像是获得了微小的增益,而不是其他模块基准测试中看到的巨大数字。
这个问题的梦幻结果是有人查看Etherpad代码并告诉我为什么我是个白痴,希望我们能让Etherpad达到每秒竞争性100k次更改,但我可能对其他模块产生了不切实际的想法,如果有人有与ws相矛盾的基准测试数据,那么请与我联系。我觉得我应该补充一点,我们测试了一下是否是内部Etherpad逻辑造成的问题,但事实并非如此,真正造成操作转换算法瓶颈的是通信层,我们99.95%确定......
解决这个问题的方法并不是把更多硬件扔进去,也不是任何形式的反向代理/传递问题。
net
模块可能会对此有所帮助。 - WLGfx