赞
踩
刚学习rabbitMQ的朋友很容易对mq的几个概念混淆,所以今天主要单独介绍rabbitmq的几个概念:信道、交换器和路由键、队列,以及这几个概念之间的关系。
概念:信道是生产消费者与rabbit通信的渠道,生产者publish或是消费者subscribe一个队列都是通过信道来通信的。
信道是建立在TCP连接上的虚拟连接,就是说rabbitmq在一条TCP上建立成百上千个信道来达到多个线程处理,这个TCP被多个线程共享,每个线程对应一个信道,信道在rabbit都有唯一的ID ,保证了信道私有性,对应上唯一的线程使用。
RabbitMQ 为什么需要信道?为什么不是TCP直接通信?
1. TCP的创建和销毁,开销大,创建需要三次握手,销毁需要四次分手
2. 如果不使用信道,那么引用程序就会使用TCP的方式连接到rabbitmq,高峰时每秒成千上万条连接会造成资源的巨大浪费(一条tcp消耗资源,成千上万的tcp会非常消耗资源),而且操作系统每秒处理TCP连接数量也是有限的,必定会造成性能瓶颈
3.信道的原理是一条线程一条信道,多条线程多条信道共同使用一条TCP连接。一条TCP连接可以容纳无限的信道,及时每秒造成成千上万的请求也不会造成性能瓶颈
exchange的作用就是类似路由器,routing key 就是路由键,服务器
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。