RocketMQ
文章平均质量分 84
凿壁偷光丶
这个作者很懒,什么都没留下…
展开
-
RocketMQ(5)- RockerMQ 消息消费
1 消费模式 1.1 Pull 模式 自主选择 Message Queue和 offset 进行消息拉取,用户拉取消息时,需要用户自己来决定拉去哪个队列从哪个offset开始,拉取多少消息。 用户自己维护 offsetStore ,具体的消费进度 roccketMQ 不会进行存储,用户可以存入 redis 或者调用 MQ 接口保存。 用户大都采用 Push 模式。 1.2 Push 模式 DefaultMQPushConsumer 是 Push 方式的默认实现,其中 Push 方式是基于 Pull 模式原创 2021-12-05 16:27:12 · 902 阅读 · 0 评论 -
RocketMQ(4)- 发送事务消息
1. 事务消息原理 RocketMQ 事务消息的实现原理基于两阶段提交和定时事务状态回查来决定消息最终是提交还是回滚。 2. 事务消息启动 TransactionListener transactionListener = new TransactionListenerImpl(); TransactionMQProducer producer = new TransactionMQProducer("trans_producer"); ExecutorService executorService = n原创 2021-12-02 13:10:09 · 3062 阅读 · 0 评论 -
RocketMQ(3)- RockerMQ 消息发送
DefaultMQProducer 消息发送 1 消息发送方式 RocketMQ 消息发送主要分为三种方式: 同步:producer 向 MQ 执行发送消息 API 时,同步等待,直到消息服务器返回发送结果。 异步:producer 向 MQ 执行发送消息 API 时,指定消息发送成功后的回调函数,然后调用消息发送 API后,立即返回,消息发送者线程不阻塞,直到运行结束,消息发送成功或者失败的回调任务在新的线程中执行。 单向:producer 向 MQ 执行发送消息 API 时,直接返回,不等待消息服务器原创 2021-11-28 23:01:14 · 798 阅读 · 0 评论 -
RocketMQ(2) - Broker 启动源码分析
1. broker 启动 broker 启动需要指定启动参数,-c D:\IDEA_Project\Rule\rocketmq\conf\broker.conf, 其中的配置文件,主要是包括存储消息的路径、nameServer 地址,刷盘方式等,如下, 然后执行 org.apache.rocketmq.broker.BrokerStartup#start 完成启动。 brokerClusterName = DefaultCluster brokerName = broker-a brokerId = 0原创 2021-11-28 16:36:31 · 1716 阅读 · 0 评论 -
RocketMQ(1) - NameServer 源码分析
1 启动流程 首先看下 namesrv 模块下的结构,结构比较简单,只存在 config、processor、routeinfo 三个包再加上 namesrv控制器。NameServer 要作用是为消息生产者 消息消费者提供关于主题 Topic 的路由信息, 那么 NameServer 要存储路由 信息,还要能够管理 Broker 节点,包括路由注册,路由删除等功能。 NamesrvStartup 启动类,启动的方法很简单,只有十几行代码。 public static void main(String[]原创 2021-11-21 12:35:37 · 1143 阅读 · 0 评论 -
RocketMQ(0) - 搭建 RocketMQ 源码并且本地运行
1 拉取代码 首先从 git 仓库中获取 rocketmq 源码,然后切换分支到 4.3 2 编译项目 在根目录下,将 pom 文件中的插件进行删除,分别是 maven-checkstyle-plugin,maven-failsafe-plugin,maven-gpg-plugin 这三个插件,接着执行 mvn clean install -Dmaven.test.skip=true, 不删除插件,则执行这一步时,会报错。 3 添加配置文件 接着在 rocketmq 根目录创建conf 文件夹,用于后面原创 2021-11-21 12:33:47 · 1745 阅读 · 0 评论