gpt4 book ai didi

sockets - RabbitMQ channel 和连接

转载 作者:可可西里 更新时间:2023-11-01 02:52:13 24 4
gpt4 key购买 nike

我试图理解 RabbitMQ 中 channel 和连接的概念,我在高层次上理解它,连接 是实现为 TCP 套接字 到代理, channel 是使用理智的真实连接进行通信的虚拟连接。因此 channel 通过相同的连接进行多路复用。

但是在底层是如何实现的,TCP sockets 是非阻塞的?我读过使用多个连接不会提高性能,为什么不呢?当一个 channel 使用连接时,我想这些调用是序列化的吧?那么多个连接是否可以让我更快地发送和接收数据。

我知道我在这里遗漏了一些东西,所以我要求澄清。

谢谢。

最佳答案

服务器或客户端是否使用非阻塞套接字是一个实现细节。需要高性能的实现可能使用非阻塞套接字;但是例如RabbitMQ 服务器使用通常的轻量级 Erlang 进程模型来实现并发。

您可以自由使用多个 AMQP 连接 - 尽管在大多数情况下您应该擅长使用一个连接和多个 channel 。 TCP 具有相对较高的开销,而在 TCP 连接之上的多路复用 channel 减少了这种开销。

关于sockets - RabbitMQ channel 和连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19515619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com