![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
RocketMQ源码阅读
文章平均质量分 52
Admin4536251
这个作者很懒,什么都没留下…
展开
-
RocketMQ NameSever
首先需要设置环境变量ROCKETMQ_HOME,使用命令启动NameServer来看启动方法。原创 2024-07-09 23:45:17 · 129 阅读 · 0 评论 -
RocketMQ网络通讯——NettyRemotingClient
的类,见名知意,```SemaphoreReleaseOnlyOnce``是一个只会被释放一次的信号量,避免多线程或者潜在逻辑错误情况下被释放多次。Netty channel接收到消息后处理核心逻辑在。主要根据消息类型(请求/响应)进行不同的处理逻辑。值得一提的是,RocketMQ依据jdk自带。原创 2024-06-26 21:34:27 · 225 阅读 · 0 评论 -
RocketMQ网络通信——NettyRemotingServer
使用线程池来调度任务,可以并行多个任务,提供了更多的配置,灵活性扩展性更强,适用于复杂的任务调度(个人认为ScheduledExecutorService完全可以代替TimerTask)基于单线程的时间轮算法,不支持并发,如果一个任务执行时间过长会阻塞后续任务的执行,适用于简单轻量的任务调度。有意思的是,这里使用不同方式实现了定时任务。这里简单总结一下二者的区别和适用场景。原创 2024-06-20 23:00:46 · 148 阅读 · 0 评论 -
RocketMQ网络通信——协议
RocketMQ解码采用的是LenghtFieldBasedFrameDecode。原创 2024-06-19 23:34:56 · 271 阅读 · 0 评论 -
RocketMQ发送消息之选择消息队列
接上文获取到topic路由信息后,需要选择具体发送的消息队列。其实开不开其故障延迟机制的区别在于对于Broker不可用的定义不同,默认机制只会避开上一次发送且失败的broker(只规避一次),而故障延迟机制会在接下来一段时间内都对其进行规避。原创 2024-04-14 22:43:32 · 283 阅读 · 1 评论 -
RocketMQ消息发送之查找Topic路由
发送消息之前rocketMQ需要获取目的topic的路由信息,即需要将消息发送到哪个topic上。原创 2024-04-14 19:22:31 · 331 阅读 · 2 评论