当前位置: 首页 > 知识库问答 >
问题:

go语言websocket,但如何实现100万连接,并且部署在多台服务器,连接与连接之间可以互相通信?

卜弘文
2023-12-04

我用go语言写了个websocket,但如何实现100万连接,并且部署在多台服务器,连接与连接之间可以互相通信

我用go语言写了个websocket,但如何实现100万连接,并且部署在多台服务器,连接与连接之间可以互相通信?

共有2个答案

鲁鸿
2023-12-04

是100万个连接,他们会被分配到多台服务器上,然后要求连上服务器的不同连接之间可以相互通信,你这是在做即时通讯吧。

那就在服务器之间,加一个连接,让三个服务器之间能交换数据,共享它们的连接信息。

比如A客户端连接在服务器S1 上,B客户端连接在服务器S2上。A给B发送消息的时候,如果S1发现它的连接列表里面没有B的连接,那就去其他服务器上查询,如果查询到有,S1就把消息发送给S2,然后S2发送给B。(基本上涉及到集群的都是类似这种方式),好像带集群功能的应用大多都是这样实现的。

还有其他的方法,客户端在连接的时候,就根据算法,算出来要去连接哪一台服务器。后面其他客户端如果要发消息给某个客户端,就能根据一样的算法,算出这个客户端连接那个服务器,也能达到一样的效果。(感觉这个方法比较挫) ,有点像redis的集群。

公羊灿
2023-12-04

你可以创建多个网关websocket服务,多个网关之间通讯,可以交给代理服务,所有网关连接到代理服务。

 类似资料:
  • 问题内容: 我们正在使用AWS(EC2)上的简单Hello World节点服务器对节点性能进行基准测试。 无论我们使用什么大小的实例,Node总是在最大1000个并发连接上出现(这不是每秒1000个,但是它可以在1次处理1000个)。此后不久,CPU出现峰值,节点基本冻结。 节点v0.10.5 节点应该能够处理比此更正确的吗?任何想法将不胜感激。 还将文件描述符(软,硬,系统)设置为65096)

  • 我正在两台本地服务器之间建立一个websocket进行开发。 一端,我的Ionic应用程序运行在http://localhost:8100/ 在另一端,我有一个Spring后端正在运行http://localhost:9080/(或http://127.0.0.1:9080) 连接已经建立,所以接下来我想用令牌发送一条消息到web套接字(我知道这可以在SockJS 1.1.0中设置连接时发送,但我

  • 我创建了一个PHP websocket服务器脚本,如下所示。

  • 问题内容: 我想编写一个脚本来测试所有链接的服务器,并返回唯一已连接的服务器(可以肯定只有一个)。 这是我当前的脚本,但是我被困在这一点上: 但是使用此查询,代码无法在第一次迭代时停止,因为它无法连接到表的第一台服务器。这是错误消息: 链接服务器“ server1”的OLE DB提供程序“ MSDASQL”返回了消息“通信链接失败; -10709连接失败(连接超时已过期)”。消息7303,级别16

  • 我尝试使用Stomp(而不是SockJs)实现普通的网页口袋,其中包含Spring服务器和Angular客户端。 下面是我在Spring中启用websocket的代码: 但是我无法连接到它,当我尝试使用Stumpjs进行角度连接时,连接永远不会完成。当我使用wscat(顺便说一句, /api/很好)进行测试时,没有任何响应,它总是尝试连接但没有成功。 这里怎么了? 编辑:这是我使用的两个依赖项 编

  • 我试图让我在Eclipse中成功开发和部署的web应用程序在Intellij上运行,但失败了。所以我想先用Glassfish在Intellij上运行一个基本的应用程序。 我正在遵循本教程中的步骤https://confluence.jetbrains.com/display/intellijidea/geting+started+with+java+ee+7+和+glassfish+4.0。但是,