集群与高可用专题测试
考察知识点
- 集群与高可用相关概念
- RabbitMQ 进阶实践
当 RabbitMQ 集群中的一个节点意外宕机时,集群会自动将该节点从集群成员列表中移除,无需人工干预。
镜像队列的消息确认(ack)操作只需要在 master 节点上执行,slave 节点会自动同步确认状态,因此确认操作不会产生额外的网络开销。
RabbitMQ 集群中所有节点之间通过 Erlang 分布式的 cookie 进行通信认证,因此集群节点必须配置相同的 Erlang cookie。
RabbitMQ 集群中的节点类型(磁盘节点/内存节点)可以在节点加入集群后通过命令进行转换。
当负载均衡器后方的某个 RabbitMQ 节点宕机时,已建立的消费者连接会自动切换到其他健康节点继续消费。
RabbitMQ 镜像队列的 ha-mode 策略设置为 exactly 时,ha-params 的值表示:
关于 RabbitMQ 集群中的磁盘节点(disc node)和内存节点(ram node),以下说法正确的是:
关于 RabbitMQ 的两种集群架构模式,以下说法正确的是:
将一个新节点加入已有 RabbitMQ 集群时,以下操作顺序正确的是:
在 RabbitMQ 集群前端配置负载均衡器时,以下哪种方案最适合 TCP 协议层的负载均衡?
在规划 RabbitMQ 集群节点类型时,以下方案合理的有哪些?
从 RabbitMQ 集群中移除一个节点时,leave_cluster 和 forget_cluster_node 的区别有哪些?
关于 RabbitMQ 集群前的负载均衡配置,以下说法正确的有哪些?
通过 policy 配置镜像队列策略时,以下说法正确的有哪些?
以下哪些场景适合选择普通集群而非镜像集群?
优雅关闭集群节点的标准操作是先执行 rabbitmqctl ____________ 停止 RabbitMQ 应用,然后执行 rabbitmqctl ____________ 主动离开集群,最后执行 rabbitmqctl ____________ 关闭 Erlang VM。这样可以确保集群元数据正确更新。
RabbitMQ 集群中,磁盘节点的元数据通过 Mnesia 数据库在所有 ____________ 之间复制,而内存节点的元数据不写入磁盘,因此集群中必须至少保留 ____________ 作为元数据的持久化备份。
使用 HAProxy 为 RabbitMQ 集群配置 TCP 负载均衡时,balance 指令应设置为 ____________ 模式以优先分配连接数最少的后端节点,option ____________ 启用 TCP 日志,timeout client 和 timeout server 应设置较大的值(如 ____________ )以适配 AMQP 长连接特性。
镜像集群中,主队列(master)与镜像队列(slave)之间的数据同步策略有两种:____________ 和 ____________ 。自动同步在 slave 加入时会先完整复制现有消息,可能导致 ____________ 。
镜像队列中,所有的读写操作都由 ____________ 节点处理。当该节点宕机时,集群会自动从镜像节点中选举一个 ____________ 作为新的 master,以确保消息不丢失。