使用RabbitMQ有什么好处
1、 服务间高度解耦
2、 异步:将消息写入队列中,非必要的业务逻辑以异步的方式运行,加快响应速度
3、 削峰:通过消息队列设置请求最大值,超过阈值的抛弃或转入错误界面
消息队列的缺点
1、 降低系统可用性
2、 增加系统复杂性
RabbitMQ的broker指什么?cluster又是指什么
Broker是指一个或多个erlang node的逻辑分组,且node上运行着RabbitMQ应用程序;cluster是在broker的基础上增加了node之间共享元数据的约束
RabbitMQ概念里的channel、exchange和queue是逻辑概念还是对应着进程实体?分别起什么作用
Queue具有自己的erlang进程;exchange内部实现为保存binding关系的查找表;channel是实际进行路由工作的实体,即负责将message投递给queue。
Vhost是什么?起什么作用?
Vhost可以理解为缩小版的RabbitMQ 服务器,其内部均还有独立的queue、exchange和binding等,但最重要的是,其独立的权限系统,可以做到vhost范围的用户控制。当然,从RabbitMQ的全局角度,vhost可以作为不同权限隔离的手段
消息基于什么传输
RabbitMQ使用信道的方式来传输数据。信道是建立在真实的TCP链接内的虚拟连接,且每条TCP连接上的信道数量没有限制
消息如何分发
若该队列至少有一个消费者订阅,消息将以循环的方式发送给消费者。每条消息只会分发给一个订阅的消费者
消息怎么路由
1、客户端连接到消息队列服务器,打开一个channel(消息通道