为什么有人会closuresNagle的algorithm?

从节点redis文档 :

socket_nodelay:默认为true。 是否在TCPstream上调用setNoDelay(),这会在底层套接字上禁用Naglealgorithm。 将此选项设置为false可能会导致额外的吞吐量,代价是更多的延迟。 大多数应用程序会希望这个设置为true。

为什么我要closuresNagle的algorithm?

当你担心延迟时,你会想closuresNaglealgorithm。 我对这个algorithm的理解是它延迟发送数据,直到有合理的数量发送。 这又减less了stream的协议开销,因为更多的数据在单个分组中发送(即,具有单个报头)。

在closuresNaglealgorithm的情况下,这个想法是数据是由协议栈立即发送的。

它是在networking资源更加紧张的时代devise的,因此减less开销更为重要,便于交付。 然而,现在通常互连速度更快,对低延迟的要求也越来越less,这一点就变得不那么重要了。 (认为​​videostream!)