metaq消息中间件
1. metaq的重要元素
1. 消息生产者
负责产生消息并发送消息到meta服务器
2. 消息消费者
负责消息的消费,meta采用pull模型,由消费者主动从meta服务器拉取数据并解析成消息并消费
3. Topic
消息的主题,由用户定义并在服务端配置。producer发送消息到某个topic下,consumer从某个topic下消费消息
4. 分区
同一个topic下面还分为多个分区,如meta-test这个topic我们可以分为10个分区,分别有两台服务器提供,那么可能每台服务器提供5个分 区,假设服务器分别为0和1,则所有分区为0-0、0-1、0-2、0-3、0-4、1-0、1-1、1-2、1-3、1-4
5. Message
消息,负载用户数据并在生产者、服务端和消费者之间传输
6. Broker
就是meta的服务端或者说服务器,在消息中间件中也通常称为broker。
7. 消费者分组(Group)
消费者可以是多个消费者共同消费一个topic下的消息,每个消费者消费部分消息。这些消费者就组成一个分组,拥有同一个分组名称,通常也称为消费者集群
8. Offset
消息在broker上的每个分区都是组织成一个文件列表,消费者拉取数据需要知道数据在文件中的偏移量,这个偏移量就是所谓offset。Offset是绝对偏移量,服务器会将offset转化为具体文件的相对偏移量
2. 总体架构图
1. 消息中间件中有两个角色: "消息生产者(Producer)"和"消息消费者(Consumer)"。Meta里同样有这两个概念,消息生产者负责创建消息并发送到Meta服务器(Broker),Meta服务器会将消息持久化到磁盘,消息消费者从Meta服务器拉取消息并提交给应用消费。
2. MetaQ使用zookeeper发布和订阅服务,并默认使用zookeeper存储消费者offset

3. metaq的主要配置项
1. zookeeper配置
2. 系统配置
okerId: 服务器集群中唯一的id,集群间的brokerId不能一样,必须为整型0-1024之间。对服务器集群的定义是使用同一个zookeeper并且在zookeeper上的root path相同 hostName: 服务器hostname,默认取本机IP地址,如果你是多网卡机器,可能需要明确指定。服务器会将此hostname加上端口写入到zookeeper提供给客户端发现。 serverPort:服务器端口,默认8123 numPartitions:系统默认情况下每个topic的分区数目,默认为1,可被topic配置覆盖。逻辑分区的作用不仅仅是通过索引提供快速定位消息的功能,它还跟整个metaq的集群有很大的关系。单个服务器的总分区数目不建议超过1000,太多将导致频繁的磁盘寻道严重影响IO性能。 dataPath: 服务器数据文件路径,默认在~home/meta下,每个topic可以覆盖此配置,对于多块磁盘的机器,可设置不同topic到不同磁盘来提升IO效率。 dataLogPath:数据日志文件路径,主要存放事务日志,默认跟dataPath一致,最好单独设置到不同的磁盘或者目录上。如果为空,使用指定的dataPath getProcessThreadCount: 处理get请求的并发线程数,默认为CPUS*10。 putProcessThreadCount: 处理put请求的并发线程数,默认为CPUS*10。 maxSegmentSize: 单个数据文件的大小,默认为1G。默认无需修改此选项。 maxTransferSize: 传输给消费者的最大数据大小,默认为1M,请根据你的最大消息大小酌情设置,如果太小,每次无法传输一个完整的消息给消费者,导致消费者消费停滞。可设置成一个大数来取消限制。 acceptPublish: 是否接收消息,默认为true;如果为false,则不会注册发送信息到zookeeper上,客户端当然无法发送消息到该broker。本参数可以被后续的topic配置覆盖。 acceptSubscribe: 与acceptPublish类似,默认也为true;如果为false,则不会注册消费信息到zookeeper上,消费者无法发现该broker,当然无法从该broker消费消息。本参数可以被后续的topic配置覆盖。 stat:全局性地控制是否开启实时统计,可被topic配置覆盖,默认为false。 loadMessageStoresInParallel: 是否启动时并行加载数据,开启可提升启动速度。默认不开启。开启后启动日志顺序可能紊乱。 updateConsumerOffsets: 当消费者的offset不在Broker的数据范围内,是否强制更新消费者的offset为当前最大offset。默认为false。测试开发环境建议开启此选项,生产环境不建议
3. topic配置
4. metaq主要命令
1. 启动
2. 关闭
3. 重启
4. 重新加载topic
5. 查看状态
bin/metaqserver.sh stats
5. 安装配置步骤
1. 安装java运行环境
2. 安装zookeeper
3. 安装metaq
6. 进入zookeeper查看topic
zookeeper的bin目录下./zkCli.sh -server 127.0.0.1:2181
进入zookeeper,以后ls /
ls /meta
ls /meta/brokers 查看
ls /meta/brokers/topics 查看消息标题
ls /meta/brokers/ids 查看列表服务器
ls /meta/broker/ids/0
get /meta/broker/ids/0

浙公网安备 33010602011771号