sha*_*hay 10 javascript node.js socket.io
我在使用NodeJS和时遇到一个奇怪的问题Socket.io.
通过接收数据的服务器ZeroMQ.那工作完美.对于每条消息ZeroMQ,我曾经sockets.volatile.emit将它发送给所有连接的客户端.问题只出现在大量连接帐户(超过100个)上,似乎有一个队列发送给客户端(客户端接收消息延迟不断增加)
通过日志/调试我知道接收来自ZeroMQ没有延迟,所有工作都在该部分.发射似乎有一个不断增加的队列或延迟.
消息速率是80每个客户端的消息/秒.
Note: NodeJS 0.10.20和Socket.IO 0.9.16.
Sim*_*bæk 13
查看这篇文章它将告诉你许多基本错误,它是关于阻止事件循环,这似乎与你的行为非常相似.
也许使用如下的工具:Debug和Blocked我认为这有助于解决你的问题.两者都可以调试在性能和其他基本问题上创建瓶颈的位置.
或者在PM2上挂起您的节点项目并将其绑定到Keymetrics.IO,这将为您提供良好的服务器视图,以及为什么它运行缓慢以及为什么会造成性能瓶颈.
没有代码示例很难解决您的问题,但这里有3个原因可以解释为什么您的应用或者您可能会产生瓶颈(可能是在不知不觉中):
使用JSON.parse函数解析大型json有效负载.
尝试在后端的大文件上进行语法突出显示(使用Ace或highlight.js之类的东西).
一次性解析大输出(例如从子进程输出git log命令).
更多信息在第2节的第一篇文章中称为"阻止事件循环"
这是一个与你有关的问题.
想要了解更多有关Event循环的信息,我可以热情地指导您" 在Node.js中如何使用单线程非阻塞IO模型 "
这是Node.js Processing模型的模型,用于查看事件循环及其周围环境发生的情况

| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |