博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
RocketMQ负载均衡特性
阅读量:5813 次
发布时间:2019-06-18

本文共 1589 字,大约阅读时间需要 5 分钟。

Producer生产者

  1. ProducerGroup
    用来表示一个发送消息应用,一个 Producer Group 下包含多个 Producer 实例,可以是多台机器,也可以是一台机器的多个进程,或者一个进程的多个 Producer 对象。一个 Producer Group 可以发送多个 Topic 消息。

    Producer Group 作用如下:

    (1)标识一类 Producer

    (2)可以通过运维工具查询返个収送消息应用下有多个 Producer 实例

    (3)发送分布式事务消息时,如果 Producer 中途意外宕机,Broker会主动回调Producer Group内的任意一台机器来确认事务状态。

  2. Producer 连接 NameServer

    Producer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取到Topic路由信息(Broket注册的IP地址),并向提供Topic服务的Master建立长连接,并且定时(默认30秒)向Master 发送心跳。

  3. Producer 发送消息负载均衡

    发送消息通过轮询队列的方式发送,每个队列接收平均的消息量。通过增加机器,可以水平扩展队列容量。另外也可以自定义方式选择发往哪个队列。注:另外多个队列可以部署在一台机器上,也可以分别部署在多台不同的机器上。

图片描述

Consumer消费者

  1. Consumer Group

    用来表示一个消费消息应用,一个Consumer Group下包含多个Consumer实例,可以是多台机器,也可以是多个进程,或者是一个进程的多个Consumer对象。一个Consumer Group下的多个Consumer以均摊 方式消费消息,如果设置为广播方式,那么这个Consumer Group下的每个实例都消费全量数据。

  2. Consumer 连接 NameServer

    Consumer与NameServer集群中的其中一个节点(随机选择)建立长连接,定期从NameServer取到Topic 路由信息,并向提供Topic服务的Master、Slave建立长连接,并定时向Master、Slave发送心跳。Consumer 既可以从 Master 订阅消息,也可以从 Slave 订阅消息,订阅规则由 Broker 配置决定。

  3. Consumer 订阅消息负载均衡

    假设有5个队列,2 个Consumer,那举第一个Consumer消费3个队列,第二Consumer 消费2个队列。这样即可达到平均消费的目的,可以水平扩展Consumer来提高消费能力。但是Consumer 数量要小于等于队列数量,如果Consumer超过队列数量,那举多余的Consumer将不能消费消息。

图片描述

  1. 消费并行度

    修改消费并行度方法:

    (1)同一个Consumer Group下,通过增加Consumer实例数量来提高并行度,超过订阅队列数的Consumer实例无效。可以通过加机器,或者在已有机器启动多个进程的方式。

    (2)提高单个 Consumer 的消费并行线程,通过修改设置 consumeThreadMin最小并发线程数和consumeThreadMax最大并发线程数来提高消费能力。

    (3)通过设置Consumer的consumeMessageBatchMaxSize这个参数,默认是1,即一次只消费一条消息,例如设置为N,那么每次消费的消息数小于等于N。这样即可大幅度提高消费的吞吐量。

Tag消息过滤

最后讲解一些Tag,Tag是用于消息分类时使用的!但是只能做简单的过滤。那么能不能消费端A订阅这个Tag1就能确定Tag1消息发送到消费端A呢?答案是不能!根据前面的Consumer负载均衡策略,一个消息不能确定被发送到具体的某个消费者,所以只能做简单的过滤数据分类。

转载地址:http://yvtbx.baihongyu.com/

你可能感兴趣的文章
redis持久化
查看>>
移动开发实用手册
查看>>
一篇了解爬虫技术方方面面
查看>>
C++访问注册表获取已安装软件信息列表示例代码
查看>>
99%的程序员认不全的软件开发定律
查看>>
javascript里undefined与null的区别
查看>>
SpringMVC源码阅读笔记-ContextLoaderListener
查看>>
Java中的for循环——通过示例学习Java编程(9)
查看>>
只和你认为可以永远共事的人一起工作
查看>>
Oracle数据库分组查询
查看>>
JAVA编程语言的基础知识(1)
查看>>
华为vrrp+dhcp+ospf+bfd
查看>>
企业文档管理系统 SeedDMS安装配置推荐使用
查看>>
Linux android 调试
查看>>
掌握python机器学习-读书笔记1 (介绍)
查看>>
用批处理实现映射盘网络盘为固定盘符,请更改冲突的硬盘盘符
查看>>
操作系统知识点汇总
查看>>
mac 下 iterm2 快捷键
查看>>
Bash各类扩展详解
查看>>
win7下avr单片机开发环境的搭建
查看>>