JAVA
大别上木
大别有道,道存上木
展开
-
RocketMQ 消息编码格式
本文基于 4.4.0 版源码RocketMQ 消息编码格式如下图所示:其中协议类型的定义在 SerializeType 中,目前支持两种:0 — JSON、1 — ROCKETMQ ;缺省值为 JSON。RemotingCommand.decode() 负责消息的解码RemotingCommand.encode() 负责消息的编码 ...原创 2018-12-15 20:53:55 · 6322 阅读 · 0 评论 -
【上木Debug Zookeeper 】配置准备
1. 源码下载:https://github.com/apache/zookeeper2. 生成 eclipse 工程,并导入 idea 具体参见 https://yq.aliyun.com/articles/39056 写的非常详细了 若是遇到无 Info 类的错误,运行 VerGen.main() 自动生成,要是自动生成也搞不定,就按照 VerGen.generateF...原创 2018-12-30 14:29:17 · 167 阅读 · 0 评论 -
【上木Debug Zookeeper】数据同步之 LearnerHandler.syncFollower()
Leader 同步数据给 Follower,由LearnerHandler.syncFollower() 方法完成。Case 1: 设置了 zookeeper.forceSnapshotSync 参数(一般测试使用),则强制用 snapshot 进行同步Case 2:lastProcessedZxid == peerLastZxidLeader发送空的 DIFF 包给 Follower...原创 2019-01-01 11:23:09 · 530 阅读 · 0 评论 -
【Objenesis】小巧的Java对象创建类库
今日重翻 spring 的 AOP 实现,发现 5.0.8.RELEASE 版的 spring 代码变化了好多(相对 3.X 版)。跟进了 AOP 的实现,发现 CglibAopProxy 多了个子类 ObjenesisCglibAopProxy看下注释,原来从 4.0 版就引入了 Objenesis/** * Objenesis-based extension of {@link Cgl...原创 2019-06-02 12:51:49 · 232 阅读 · 0 评论 -
【Rocket MQ】消费者启动流程
下图为基于 4.4.0-SNAPSHOT 版的源码画的消费者启动流程,具体见 DefaultMQPushConsumerImpl.start() 方法。原创 2019-06-29 17:56:29 · 708 阅读 · 0 评论