当前位置: 首页 > 面试题库 >

在多核服务器上将socket.io与群集一起使用的好方法?

谷梁凌
2023-03-14
问题内容

我创建了一个nodejs应用程序,该应用程序在单个内核中运行良好。此应用程序使用socket.io进行轻快的通信。

现在,我想通过使用clusternodejs中的模块在多核系统上运行它来垂直扩展应用程序

我的应用程序中的所有内容都将数据存储在Redis中,因此,处理一些基本数据和会话没有问题。

但是,当我使用集群产生多个工作进程时,似乎每个工作进程都有自己的套接字处理。

例如,假设有一个称为“来宾”室的聊天室。

用户A和用户B连接到会议室,并且它们被分配到不同的工作进程。

由于它们处于不同的进程中,并且这些进程不共享套接字侦听器,因此用户A和用户B无法相互通信。

什么是解决此问题的好方法?socket.io是否支持多核系统?

socket.io仅用于单核吗?


问题答案:

您可以像平常一样使用socket.io,但是在后台使用redis存储。它还将在socket.io上支持多个实例,而无需任何外部库。它甚至支持多个实例上的房间。

链接到如何使用Redis设置socket.io:通过
socket.io 使用多个节点/进程



 类似资料:
  • 我想通过STS在Spring Boot中使用JPA和SQL Server。这是我的表: 马文 application.properties 模型.Account.class 接口账户 ServiceAccount.class 服务帐户类 我在控制器中调用了方法add帐户(),这是我得到的异常 "java.lang.NoClassDefFoundError: org/spingFramework/o

  • 问题内容: 考虑以下代码段: 显然不知道可以将a馈送到需要的方法(实际上,它的文档说它在寻找 具有指定名称和形式参数完全相同的方法 )。 是否有一种直接的方法来像上面那样以反射方式查找方法,但是要考虑多态性,以便上述反射示例在查询参数时可以找到该方法? 问题答案: 该反射教程 建议使用样本进行查找

  • 我是个很新的程序员。我在工作中的任务之一是让我们的定制工具创建草稿电子邮件,并将其放入运行该工具的用户的草稿电子邮件文件夹中。我们目前使用Exchange Server 2010(但正在迁移到Exchange Online)。 这个链接讨论了UseDefaultCredentials,但我似乎不知道如何实现它。我创建了一个名为service的ExchangeService对象,并使用以下凭据与Ex

  • 问题内容: 可以说我在 四个 工作进程(伪)上具有以下内容: 在浏览器上… 问题: 由于四个独立的工作进程发送消息,因此我每秒收到 四条 消息。 如何确保邮件仅发送一次? 问题答案: 编辑: 在Socket.IO 1.0+中,现在可以使用更简单的Redis适配器模块,而不是通过多个Redis客户端设置存储。 下面显示的示例看起来更像这样: 如果您有一个主节点需要发布到其他Socket.IO进程,但

  • 问题内容: 我有两段代码用于学习Python 3.1中的多处理。我的目标是使用所有可用处理器中的100%。但是,此处的代码段在所有处理器上仅达到30%-50%。 无论如何,要“强制” python使用全部100%?操作系统(Windows 7、64位)是否限制了Python对处理器的访问?当下面的代码段运行时,我打开任务管理器并观察处理器的峰值,但从未达到并维持100%。除此之外,我还可以看到在此

  • 问题内容: 我对WireMock完全陌生。 到目前为止,我一直在使用通过SOAPUI进行模拟响应。我的用例很简单: 只需将SOAP XML请求发送到不同的端点(http:// localhost:9001 / endpoint1 ),然后返回固定的XML响应。但是MockWrire必须作为独立服务部署到专用服务器上,该服务器将充当从中提供模拟响应的中心位置。 只是想要一些开始的建议。如我所见,Wi