mq:广播模式和集群模式

您所在的位置:网站首页 rocketmq的集群模式 mq:广播模式和集群模式

mq:广播模式和集群模式

#mq:广播模式和集群模式| 来源: 网络整理| 查看: 265

参考网址

zhuanlan.zhihu.com/p/439443259

感谢大佬分享 复制代码 集群模式(负载均衡模式) rocketMQ的消费者消费消息,有2种模式: 集群模式,也称为负载均衡模式。 如下所示: 复制代码

图片.png

图片.png

消费者采用负载均衡模式来消费消息,一个分组(group)下的多个消费者共同消费队列中的消息,每个消费者处理的消息不同。 一个consumer group 中的各个consumer实例分摊去消费消息,即1条消息只会投递到一个consumer group中的consumer事例。 如下图所示, 某个topic有3个队列,某个consumer group中有3个消费者实例,那么每个实例只能消费其中的一个队列中的消息。 集群消费模式,是消费者默认的消费模式。即默认的就是集群消费模式,而不是广播模式。 在代码中这么设置: // 消费模式 默认是集群模式(负载均衡模式),还有是广播模式 consumer.setMessageModel(MessageModel.CLUSTERING); 复制代码

图片.png

广播模式 广播消费模式中,每一条消息都会对group组中的每一个消费者实例都投递一遍。 即使这些consumer实例都属于同一个consumer group,消息也会被每一个consumer 实例来消费一次。 实际上,每个消费者实例都获取到了topic下的每个队列去消费消息。 复制代码

图片.png

广播模式,如下所示: 复制代码

图片.png

图片.png

如何理解广播模式呢? 假如你有1个大喇叭,你宣布一个消息,所有人都听见了,这就是广播模式 就是所有人共享消息。 MQ有广播模式,可以在上游系统发布一条消息后,供下游多个系统使用 复制代码 总结 从上面2张图,就可以很清晰的知道2种模式的区别。 一般来说,用集群模式的比较多,但是还是要根据具体的场景来确定。 复制代码 适用场景以及注意事项 负载均衡模式:适用场景&注意事项 消费端集群化部署,每条消息只需要被处理一次。 由于消费进度在服务端维护,可靠性更高。 集群消费模式下,每一条消息都只会被分发到一台机器上处理。 如果需要被集群下的每一台机器都处理(消费),请使用广播模式。 集群消费模式下,不保证每一次失败重投的消息路由到同一台机器上,因此处理消息时不应该做任何确定性假设。 复制代码 广播模式:适用场景&注意事项 每条消息都需要被相同逻辑的多台机器处理。 消费进度在客户端维护,出现重复的概率稍大于集群模式。 广播模式下,消息队列 RocketMQ 保证每条消息至少被每台客户端消费一次,但是并不会对消费失败的消息进行失败重投,因此业务方需要关注消费失败的情况。 广播模式下,客户端每一次重启都会从最新消息消费。客户端在被停止期间发送至服务端的消息将会被自动跳过,请谨慎选择。 广播模式下,每条消息都会被大量的客户端重复处理,因此推荐尽可能使用集群模式。 目前仅 Java 客户端支持广播模式。 广播消费模式下不支持顺序消息。 广播消费模式下不支持重置消费位点。 广播模式下服务端不维护消费进度,所以消息队列 RocketMQ 控制台不支持消息堆积查询、消息堆积报警和订阅关系查询功能。 复制代码 后续

图片.png



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3