tcp - 到环回接口(interface)的 TCP 连接有多少开销?

标签 tcp localhost connection-pooling couchbase loopback

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

最佳答案

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

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

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

关于tcp - 到环回接口(interface)的 TCP 连接有多少开销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11219988/

相关文章:

php - 如何隐藏www目录下的文件

java - 仅在本地主机上的 Google App Engine 1.6.4 上使用 Jsoup 时出现 ClassFormatError

java - 关闭池中的 JDBC 连接

jboss - 如何在 JBoss 6.2 EAP 中安装 WebSphere MQ 资源适配器 (wmq.jmsra.rar)?

java - 从 TCP 套接字读取 JPEG 字节 (Android)

qt - 将 QHash 序列化为 QByteArray

java - 本地主机的 Eclipse tomcat https 配置

java - 确定 TLS 数据包 Java/Android 的数据包大小

sockets - 如何通过 RAW 套接字使用 TCP 校验和卸载

database - PowerBuilder数据库连接池?如何