Cha*_*gwu 5 sockets multiplexing
是否可以多路复用 sa ocket 连接?
我需要建立到 yahoo messenger 的多个连接,我正在寻找一种方法来有效地做到这一点,而不必为每个客户端连接打开一个套接字。
到目前为止,我必须为每个客户端使用一个套接字,并且这不能很好地扩展到 50,000 个以上的连接。
哦,我的解决方案是针对电信公司,所以我至少需要达到 250,000 到 500,000 个连接
我打算将多个 IP 地址绑定到单个 NIC 以突破每个 IP 地址的 65k 端口限制。
请我有任何帮助,我能得到的见解。
**我在这个网站上的大部分其他问题都没有得到解答:) **
谢谢
这是一个关于在严重情况下扩展的有趣问题。
您本质上是在问:“我如何建立与互联网服务的 N 个连接,其中 N >= 250,000”。
有效且高效地做到这一点的唯一方法是集群。您无法在单个主机上执行此操作,因此您需要能够将客户群分割并分区到多个不同的服务器中,以便每个服务器仅处理一个子集。
这个想法是让单个服务器保持尽可能少的打开连接(均匀分布连接),同时保持足够的连接,通过将服务器间通信保持在最低水平来使您托管的任何服务都可行。这意味着任何两个相关的连接(例如两个经常相互通信的帐户)都必须位于同一主机上。
您将需要可以处理此问题的服务器和网络基础设施。您将需要一个 IP 地址子网,每个服务器都必须与互联网进行无状态通信(即您的路由器不会执行任何 NAT,以免跟踪 250,000 个以上的连接)。
您必须与 AOL 联系。如果不考虑切断您的连接,AOL 就无法处理这种级别的连接。任何这种规模的服务都必须与 AOL 协商,以便您和他们都能够处理连接。
您应该研究一些 I/O 复用技术。我想到了 Kqueue 和 epoll。
为了编写这个大规模并发和电信级解决方案,我建议研究 erlang。Erlang 是为诸如此类的情况(多服务器、大规模多客户端、大规模多线程电信级软件)而设计的。它目前用于运行爱立信电话交换机。
| 归档时间: |
|
| 查看次数: |
8617 次 |
| 最近记录: |