在设计客户机/服务器体系结构时,将多个连接从同一个进程多路复用到远程服务器(即共享一个连接)与在客户机中每个线程/会话打开一个连接(通常在连接到memcached或数据库服务器时所做的那样)有什么好处吗?
我知道每个连接都有一些开销(例如,如果一个服务器有5万个打开的连接,占用了大量的RAM),这就是facebook为memcached开发UDP补丁的一个主要原因。但我不希望有接近这个数字的地方。最多1万人。在建立tcp/ip连接和进行授权方面也有节省,但目前我宁愿像memcached那样将授权留给防火墙软件。
是否有任何理由在少于10K连接的tcp/ip客户机/服务器应用程序中实现多路复用连接?
编辑-详细信息:
这是给我正在处理的数据库服务器/客户端的。我认为Informix和Oracle实际上允许在一个tcp/ip连接上进行会话复用。在Informix文档中,他们说非线程客户端可能会得到性能改进(没有提到多线程客户端,也许它不是线程安全实现)。
发布于 2012-01-03 17:30:05
:与打开每个线程/会话一个连接相比,复用多个连接有什么好处吗?
是的,虽然这取决于单纯形的实现。您可能知道防火墙的麻烦,例如FTP、SIP等,尤其是在使用加密时。这是影响决定是否使用多个连接,还是只使用一个连接的原因。
https://stackoverflow.com/questions/8707807
复制相似问题