rocketMq概念介绍

作者: 晴天哥_王志 | 来源:发表于2018-03-18 22:59 被阅读107次

    rocketMq官网

        http://rocketmq.apache.org/

    rocketMq逻辑概念介绍

    rocketMq逻辑图

    备注
        改图片分享自李占卫的网上家园

    说明

        在rocketMq的中核心4组件为namesrv、broker、consumer、producer。

        broker:消息存储中心,主要用来存储消息并通过namesrv对外提供服务。

        namesrv:无状态的注册中心,功能用来保存broker的相关的元信息并提供给producer在发送消息过程中和提供给consumer消费消息过程中查找broker信息。

        producer:消息生产者,通过namesrv获取broker的地址并发送消息。

        consumer:消息消费者,通过namesrv获取broker的地址并消费消息。

    rocketMq部署情况介绍

    rocketMq部署图


    rocketMq的集群概念细分

    说明

        rocketMq实际部署图,每个组件都可以用集群形式出现。

        producer:通过producerGroup的名字来标记自己是一个集群。

        consumer:通过consumerGroup的名字来标记自己是一个集群。

        namesrv:相互之间无通信,通过部署多台机器来标记自己是一个伪集群。

        broker:通过clusterName来标记集群,每个broker通过clusterName来表明cluster层面集群,通过brokerName来标明broker层面集群,通过brokerId标明主从身份。

    rocketMq消息存储介绍

    rocketMq消息存储

    说明:

        rocketMq的消息存储通过二级索引来进行,其中实际消息存储在Commit Log的逻辑队列中(磁盘文件消息顺序写),consume queue保存着每个消息消费队列的待消费的数据并且指向commit Log。

    rocketMq线上配置介绍

    rocketMq实际数据存储

    说明:

        rocketMq线上环境的真实存储,每个broker的存储数据格式就是类似上图。

        config目录

            consumerFilter:保存consumer端的消息过滤配置,应该是等消费端配置了过滤规则就会在这个文件中增加记录。

            consumerOffset:消费进度偏移量,以topic@consumerGroup作区别,0:125的0代表队列,125代表消费偏移量。

    consumerOffset

            delayOffset:延迟队列消费进度,其中2代表延迟粒度,2000代表消费进度。

    delayOffset

            subscriptionGroup:表示订阅消费的消费组。

    subscriptionGroup

            topic:rocketMq中topic的信息,可以理解topic为业务消息分组的粒度,一般一个topic为一类业务的逻辑消息集合。

    topic 

    commitlog目录

        rocketMq实际存储消息的位置。

    consumequeue目录

        %DLQ%@ConsumeGroupA:消费分组的死信队列,保存指向commit log的索引。

        %RETRY%@ConsumeGroupA:消费分组的充实队列,保存指向commit log的索引。

        SCHEDULE_TOPIC_XXXX:延迟消息队列,保存指向commit log的索引。

        TOPICA:topic的消费队列存储,保存指向commit log的索引。

    相关文章

      网友评论

        本文标题:rocketMq概念介绍

        本文链接:https://www.haomeiwen.com/subject/axpyqftx.html