mq
文章平均质量分 94
W|J
你很懒,还没有添加简介
展开
-
RocketMQ-Producer
消息生产者的代码都在client模块中,相对于RocketMQ来讲,消息生产者就是客户端,也是消息的提供者。原创 2023-04-27 16:24:46 · 585 阅读 · 0 评论 -
Chapter13-基于 Netty 的通信实现
本章介绍了 RocketMQ 底层通信的实现机制,由于它是基于 Netty 来实现的,所以首先介绍了 Netty 的基础知识。 Netty 被用在很多开源软件的底层通信部分, RocketMQ 以 Netty 为基础,还实现了一种机制,把通信功能和消息处理功能分离,不同类型的通信内容被抽象成发送带有对应类型代码的 Command,同时根据类型代码查找对应的 Processor 和 Executor 来执行,结构非常清晰,为我们自己实现网络通信程序提供了参考。原创 2023-04-20 13:58:03 · 528 阅读 · 0 评论 -
Chapter12-主从同步机制
本章分析了 Master 和 Slave 角色的 Broker 之间同步信息功能的实现。 需要同步的信息分为两种类型,实现方式各不相同:一种是元数据信息,采用基于Netty 的 command 方式来同步消息;另 一种是 commitLog 信息,同步方式是直接基于 Java NIO 来实现。原创 2023-04-19 13:56:48 · 363 阅读 · 0 评论 -
Chapter11-最常用的消费类
本章分析的是 Client 模块里的代码 ,我们在使用 RocketMQ 的时候 , 更多的是和这个模块里 的代码打交道。 本章重点分析了 DefaultMQPushConsumerlmpl类 , 然后分析了 Consumer 的并发处理过程 ,最后分析了客户端 Class 统一的底层通信类 MQClientlnstance 。原创 2023-04-19 10:50:28 · 426 阅读 · 0 评论 -
Chapter10-NameServer 源码解析
本章分析了 NameServer 模块的源码, NameServer 是一个功能重要但是代码量不大的模块,所以选择这个模块入手,比较容易理解。 我们在分析源码时,认真读懂一个模块后就可以对作者 的代码风格 、设计偏好等有基本的了解 。原创 2023-04-18 15:13:50 · 454 阅读 · 0 评论 -
Chapter7-吞吐量优先的使用场景
本章重点关注性能,关注在大消息量的情况下,如何提高 RocketMQ 的吞吐量 。 首先介绍了消息过滤,在服务端进行消息过滤可以减少无效消息传输造成的带宽浪费, Tag 是最常用的一种高效过滤方式,此外还可以用 SQL 表达式、FilterServer 来过滤消息 。另一个提高吞吐量 的方法是增加集群 的机器数量,提高并发性,要根据实际场景增加 Broker 、 Consumer 或 Producer 角色的机器数量 。原创 2023-04-18 13:26:15 · 196 阅读 · 0 评论 -
Chapter6-可靠性优先的使用场景
本章根据使用场景,讨论如何“可靠”地收发消息 。 即在要求消息顺序的场景下,如何既能并发执行,又能保证消息顺序;然后分析在可能的故障场景下,如何应对以保证不丢消息 、 不中断服务。 RocketMQ 在设计上,有重试机制来保证消息不丢,造成的结果是可能存在消息重复,这一点需要用户根据具体业务场景来处理。原创 2023-04-17 16:27:10 · 298 阅读 · 0 评论 -
Chapter5-消息队列的核心机制
本章介绍了 RocketMQ 消息队列实现的难点及核心,即“队列”本身的实现,基于磁盘做一个读写效率高 的队列并非易事,实现不好就会使磁盘操作成为 整个系统 的瓶颈,无法提升系统 的 吞吐量 。 RocketMQ 基于“顺序写”“随机读”的原则来设计,利用“零拷贝”技术,克服了磁盘操作的瓶颈。另一个难点是为了高可用性而设计的主从机制,数据被及时复制到多个机器,这样当一台机器出故障后,整体系统依然可用 。 这样可靠性和性能能直接有个权衡, RocketMQ 把选择权留给用户原创 2023-04-17 10:53:35 · 136 阅读 · 0 评论 -
《RockectMQ实战与原理解析》Chapter4-分布式消息队列的协调者
分布式消息队列的协调者的内容包括NameServer 的功能:集群状态的存储结构、状态维护逻、;各个角色间的交互流程:交互流程源码分析、为何不用 ZooKeeper ;底层通信机制:Remoting 模块、协议设计和编解码、Netty库。原创 2023-04-17 09:50:09 · 409 阅读 · 0 评论 -
Chapter3-用适合的方式发送和接收消息
本章介绍了ROcketMq 的不同类型的消费者:DefaultMQPushConsumer 的使用、处理流程、流量控制、的启动 、关闭流程;不同类型的生产者:DefaultMQProducer、发送延迟消息、自定义消息发送规则、对事务的支持;如何存储队列位置信息;自定义日志输出原创 2023-04-14 15:02:18 · 418 阅读 · 0 评论