首页 > 其他 > 详细

RabbitMQ 为什么需要信道?为什么不是TCP直接通信?

时间:2019-11-06 11:53:26      阅读:88      评论:0      收藏:0      [点我收藏+]

交换器和队列的关系

1. 交换器是通过路由键和队列绑定在一起的,如果消息拥有的“路由键”跟队列和交换器的“路由键”匹配,那么消息就会被路由到该绑定的队列当中去

2. 也就是说,消息到队列的过程中,消息首先会经过交换器,接下来交换器再通过路由键匹配,分发消息到具体的队列中去

3. 路由键可以就是为匹配的规则 

 

RabbitMQ 为什么需要信道?为什么不是TCP直接通信?

1. TCP的创建和销毁,开销大,创建需要三次握手,销毁需要四次分手

2. 如果不使用信道,那么引用程序就会使用TCP的方式连接到rabbitmq,高峰时每秒成千上万条连接会造成资源的巨大浪费(一条tcp消耗资源,成千上万的tcp会非常消耗资源),而且操作系统每秒处理TCP连接数量也是有限的,必定会造成性能瓶颈

3.信道的原理是一条线程一条信道,多条线程多条信道共同使用一条TCP连接。一条TCP连接可以容纳无限的信道,及时每秒造成成千上万的请求也不会造成性能瓶颈

RabbitMQ 为什么需要信道?为什么不是TCP直接通信?

原文:https://www.cnblogs.com/gjack/p/11804204.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!