use*_*433 6 messaging tcp amqp publish-subscribe rabbitmq
AMQP如何克服发送消息时直接使用TCP的困难?或者更具体地说是在发布/订阅场景中?
在 AMQP 中有一个代理,该代理接收消息,然后完成将它们路由到交换和队列的困难部分。您还可以设置持久队列,即使它们断开连接,也可以为客户端保存消息。
您当然可以自己完成所有这些工作,但要正确完成需要大量的工作。特别是 RabbitMQ 已经在许多部署中进行了实战测试。
您仍然使用 AMQP 下的 TCP 协议,AMQP 提供了更高的抽象。
您还必须选择与所有客户端一起使用的有线协议,其中 AMQP 已经定义了该有线协议。
它通过对所有线程使用同一个TCP
连接来提高性能来克服困难。AMQP
能够通过使用来做到这一点channels
。这些通道是“真实”连接内的虚拟连接TCP
,您通过该通道发出 AMQP 命令。
当每个线程启动时,它会在现有连接上创建一个通道,并获得自己的私有通信路径到代理,而不会对操作系统TCP
堆栈造成任何额外负载。
因此,您可以每秒创建数百次或数千次频道,而您的操作系统不会看到任何信号。AMQP
您可以在一个TCP
连接上拥有多少个频道没有限制。把它想象成一束光缆。
资料来源:RabbitMq 在行动
归档时间: |
|
查看次数: |
3107 次 |
最近记录: |