问题一: RabbitMQ 中的 broker 是指什么? cluster 又是指什么?
答: broker 是指一个或多个 erlang node 的逻辑分组,且 node 上运行着 RabbitMQ 应用
程序。 cluster 是在 broker 的基础之上,增加了 node 之间共享元数据的约束。
问题二:什么是元数据?元数据分为哪些类型?包括哪些内容?与 cluster 相关的元数据
有哪些?元数据是如何保存的?元数据在 cluster 中是如何分布的?
答:在非 cluster 模式下,元数据主要分为 Queue 元数据( queue 名字和属性等)、
Exchange 元数据( exchange 名字、类型和属性等)、 Binding 元数据(存放路由关系的查
找表)、 Vhost 元数据( vhost 范围内针对前三者的名字空间约束和安全属性设置)。在
cluster 模式下,还包括 cluster 中 node 位置信息和 node 关系信息。元数据按照 erlang
node 的类型确定是仅保存于 RAM 中,还是同时保存在 RAM 和 disk 上。元数据在
cluster 中是全 node 分布的。
下图所示为 queue 的元数据在单 node 和 cluster 两种模式下的分布图。
问题三: RAM node 和 disk node 的区别?
答: RAM node 仅将 fabric(即 queue、 exchange 和 binding 等 RabbitMQ 基础构件)相
关元数据保存到内存中,但 disk node 会在内存和磁盘中均进行存储。 RAM node 上唯一
会存储到磁盘上的元数据是 cluster 中
RabbitMQ消息中间件面试专题及答案
最新推荐文章于 2024-04-15 23:18:57 发布

订阅专栏 解锁全文
2540

被折叠的 条评论
为什么被折叠?



