2

我正在构建一个 Web 应用程序,其中所有数据库连接都是通过在同一台机器上运行的代理完成的(特别是Couchbase Moxi)。我听说建立与外部服务器的 TCP 连接需要开销(时间和内存),这是连接池(Moxi 处理其外部连接)背后的基本原理。但是到 localhost/loopback 的 TCP 连接是否也存在这种开销?具体来说,我是否需要在我的应用程序和本地代理之间建立连接池,或者我可以为每个请求建立一个新连接?更一般地说(对于我自己的教育,我想),如果在建立与 localhost 的 TCP 连接有任何开销,它是如何引入的?

4

1 回答 1

3

对于 localhost,与远程 tcp 相同,但响应时间要低一些 - (我刚刚进行的简单测试为 0.019 而不是 0.19 毫秒)

不过,这只是开销的一部分——它会影响建立连接所需的时间。(TCP SYN-ACK 序列,你可以在维基百科上查到这个:http ://en.wikipedia.org/wiki/SYN_%28TCP%29#Connection_establishment )

除此之外,数据库本身可能会引入其他开销 - 接受连接,检查安全性,检查授权,可能加载任何特定于用户的设置,...... - 即使使用 localhost 连接,这些开销也会保持不变。

于 2012-06-27T05:40:34.850 回答