随笔 - 2  文章 - 721  评论 - 6  阅读 - 35万

文章分类 -  Rocketmq

消费流程
摘要:拉取消息:PullMessageService MQClientInstance#start方法,会启动消息拉取服务:PullMessageService,PullMessageService是ServiceThread的子类,启动该服务时会创建一个新的线程 public void run() { 阅读全文
posted @ 2022-05-17 10:39 溪水静幽 阅读(60) 评论(0) 推荐(0) 编辑
consumer启动流程
摘要:构造方法:DefaultMQPushConsumer consumer的处理类为DefaultMQPushConsumer public DefaultMQPushConsumer(final String namespace, final String consumerGroup, RPCHook 阅读全文
posted @ 2022-05-16 11:35 溪水静幽 阅读(148) 评论(0) 推荐(0) 编辑
消息存储
摘要:RocketMQ消息存储整体架构 RocketMQ采用的是混合型的存储结构,为Broker单个实例下所有的队列共用一个日志数据文件(即为CommitLog)来存储。而Kafka采用的是独立型的存储结构,每个队列一个文件。 RocketMQ的混合型存储结构针对Producer和Consumer分别采用 阅读全文
posted @ 2022-05-15 11:09 溪水静幽 阅读(164) 评论(0) 推荐(0) 编辑
消息发送流程
摘要:DefaultMQProducer#send(...):发送消息 public SendResult send(Message msg) throws MQClientException, RemotingException, MQBrokerException, InterruptedExcept 阅读全文
posted @ 2022-05-14 18:24 溪水静幽 阅读(566) 评论(0) 推荐(0) 编辑
Producer启动流程
摘要:DefaultMQProducer构造方法 public DefaultMQProducer(final String producerGroup) { this(null, producerGroup, null); } public DefaultMQProducer(final String 阅读全文
posted @ 2022-05-12 11:56 溪水静幽 阅读(260) 评论(0) 推荐(0) 编辑
路由管理
摘要:NameServer需要为生产者和消费者提供关于Topic的路由信息,还得管理集群中的所有Broker节点,包括时刻监控Broker的存活状态、接收Broker的注册信息,而这些路由的基础信息,在RouteInfoManager这个类中。 元信息 RouteInfoManager是路由信息的管理类 阅读全文
posted @ 2022-05-10 11:54 溪水静幽 阅读(138) 评论(0) 推荐(0) 编辑
NameServer启动流程
摘要:NameServer是一个提供轻量级服务发现和路由的服务器,主要功能 代理管理,NameServer从Broker集群接受注册,提供心跳机制来检查Broker是否活动。 路由管理,每个名称服务器将保存关于Broker集群的整个路由信息和用于客户机查询的队列信息。 作为RocketMQ的注册中心,Na 阅读全文
posted @ 2022-05-09 11:39 溪水静幽 阅读(140) 评论(0) 推荐(0) 编辑
负载均衡
摘要:RocketMQ 负载均衡在 Client 端完成,分为 Producer 端发送消息时的负载均衡和 Consumer 端订阅消息的负载均衡。 Producer 的负载均衡 Producer 端在发送消息时,先根据 Topic 找到指定的 TopicPublishInfo,获取了 TopicPubl 阅读全文
posted @ 2022-05-07 23:06 溪水静幽 阅读(82) 评论(0) 推荐(0) 编辑
高可用机制
摘要:分布式集群 RocketMQ分布式集群是通过Master和Slave的配合达到高可用性的。Master和Slave的区别:在Broker的配置文件中,参数brokerId的值为0表明这个Broker是Master,大于0表明这个Broker是Slave,同时brokerRole参数也会说明这个Bro 阅读全文
posted @ 2022-05-06 14:58 溪水静幽 阅读(113) 评论(0) 推荐(0) 编辑
底层存储
摘要:RocketMQ 存储的文件主要包括 Commitlog 文件、ConsumeQueue 文件、Index 文件。 RocketMQ 将所有主题的消息存储在同一个文件中,确保消息发送时按顺序写文件,尽最大能力确保消息发送的高可用性与高吞吐量。 消息中间件一般都是基于主题的订阅与发布模式,消息消费时必 阅读全文
posted @ 2022-05-04 11:24 溪水静幽 阅读(70) 评论(0) 推荐(0) 编辑
下单与支付最终一致性
摘要:下单场景 1. 用户请求订单系统下单 2. 订单系统通过RPC调用订单服务下单 3. 订单服务调用优惠券服务,扣减优惠券 4. 订单服务调用调用库存服务,校验并扣减库存 5. 订单服务调用用户服务,扣减用户余额 6. 订单服务完成确认订单 问题 户提交订单后,扣减库存成功、扣减优惠券成功、使用余额成 阅读全文
posted @ 2022-04-26 11:19 溪水静幽 阅读(1064) 评论(0) 推荐(0) 编辑
广播消息、批量消息
摘要:广播消息就是向所有用户发送消息。 如果我们希望所有订阅者都能收到有关某个主题的消息,可以使用广播消息。 举个例子 生产者发送10条消息,有2个订阅者,则这两个订阅者会分别收到10条消息, 而与广播模式相对应的集群模式这是 2个订阅者一共收到10条消息。 Rocketmq 消费者默认是集群的方式消费的 阅读全文
posted @ 2021-04-21 23:13 溪水静幽 阅读(175) 评论(0) 推荐(0) 编辑
顺序消息ordermessage
摘要:消息有序指的是可以按照消息的发送顺序来消费(FIFO)。RocketMQ可以严格的保证消息有序,可以分为分区有序或者全局有序。 原理 在默认的情况下消息发送会采取Round Robin轮询方式把消息发送到不同的queue(分区队列); 而消费消息的时候从多个queue上拉取消息,这种情况发送和消费是 阅读全文
posted @ 2021-04-19 23:09 溪水静幽 阅读(177) 评论(0) 推荐(0) 编辑
Rocketmq存储结构
摘要:右侧的部署模式 ,双机互为主备 发送消息的步骤 1) 设置 Producer 的 GroupName(Producer Group是一类 Producer 的集合); 2) 设置 InstanceName,当一个 JVM 需要启动多个 Producer 时,需要指定不同的 InstanceName 阅读全文
posted @ 2021-04-14 23:41 溪水静幽 阅读(320) 评论(0) 推荐(0) 编辑
Rocketmq架构
摘要:RocketMQ的架构 整体由4部分组成 namesrv broker producer consumer namesrv 当broker服务启动后,会向namesrv注册信息,比如broker中的主题、消费偏移量、队列、ip、端口等,由broker的心跳发送到namesrv。 broker clu 阅读全文
posted @ 2021-04-08 23:35 溪水静幽 阅读(407) 评论(0) 推荐(0) 编辑
Rocketmq基本概念
摘要:消息模型 RocketMQ主要由Producer、Broker、Consumer 三部分组成,Producer 负责生产消息,Consumer 负责消费消息,Broker 负责存储消息 消息生产者(producer) 负责生产消息,由业务系统负责生产消息。一个消息生产者会把业务应用系统里产生的消息发 阅读全文
posted @ 2021-04-07 23:27 溪水静幽 阅读(139) 评论(0) 推荐(0) 编辑
Rocketmq环境配置
摘要:修改配置文件 broker.conf 位于$ROCKETMQ_HOME/conf目录下 ,启动的时候可以通过-c参数加载该配置文件 #集群名称,可自定义 brokerClusterName=DefaultCluster brokerName=broker‐a brokerId=0 #rocketmq 阅读全文
posted @ 2021-01-10 19:18 溪水静幽 阅读(4) 评论(0) 推荐(0) 编辑

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示