一、RabbitMQ有哪几个组件组成?每个组件之间是什么关系?整体的逻辑架构是什么?
1、RabbitMQ整体逻辑架构图:
2、RabbitMQ整体逻辑架构说明,主要分为2大部分,server端和client端;
(1)client端:分为Publisher(消息生产者)和Consumer(消息消费者)两种,client端通过下列步骤实现与server端相连并发送或接收消息:
a、建立连接,通过指定ip、端口、用户名、密码和virtual host,与broker建立连接;
b、通过创建的连接实例,获取channel通道;
c、通过channel,可以实现新建queue、发送消息,接收消息等操作;
2、server端:
a、一个broker可以包含多个virtual host,可以理解为内部的虚拟机,每个virtual host之间是相互隔离的;通过这种方式可以实现项目级别的隔离;安装完成后默认virtual host的名称是/;
b、一个virtual host可以包含多个exchange,默认:
c、在server内部,当Publisher把消息发送到exchange时,会由routes的routing-key决定将消息路由到哪个queue;
3、官方文档有段话,个人觉得比喻的比较恰当:
RabbitMQ是一个消息代理:
a post box:邮箱
a post office:邮局
a letter carries:邮差
RabbitMQ处理和转发的是二进制数据块消息!