摘要:
官方文档参考连接:https://prometheus.io/docs/prometheus/latest/querying/basics/ 表达式和数据类型 Instant vector Range vector Scalar String 1. 瞬时变量vs范围变量 Instan Vector允 阅读全文
摘要:
概览 RocketMQ 主从同步指的是消息发送到master的内存中,并且等到同步到slaver的内存才返回; 刷盘则是将内存中的消息写入磁盘,同样分为同步刷盘和异步刷盘。同步刷盘指一条消息写入磁盘才返回成功,异步刷盘指写入内存就返回成功,稍后异步线程刷盘。 上文说到消息append后会返回一个状态 阅读全文
摘要:
第一篇介绍了存储的概览,定位到消息追加消息处细看一下 获取mappedFile ——> 追加消息 ——> 处理结果 @DefaultMappedFile#appendMsgInner() public AppendMessageResult appendMessagesInner(final Mes 阅读全文
摘要:
这篇文章介绍在RocketMQ存储中使用到的一些概念,包括和零拷贝相关的MappedFile 看下MappedFile的类图结构,DefaultMappedFile实现了MappedFile接口,同时继承了ReferenceResource类,这个类中实现了统计mappedFile的引用次数及释放等 阅读全文
摘要:
这篇文章记录RocketMQ大致的存储流程,源码为5.0.1-SNAPSHOT 入口从Broker模块的SendMessageProcessor开始 @SendMessageProcessor#sendMessage() 5.0中将putmessage中的一些校验逻辑下沉到了hook中 for (P 阅读全文
摘要:
延迟消息是什么 不会立即发送,而是在指定时间间隔后才发送出去。 RocketMQ5.0支持任意级别的延迟消息 延迟消息怎么用 发送的时候指定时间戳,需要使用5.0.0以上的客户端 // This message will be delivered to consumer 10 seconds lat 阅读全文
摘要:
RocketMQ支持定时消息,发送消息时可以选择18个延迟level中的一个level,延迟一段时间投递。这18个level分别为 1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h broker有配置项messageDelayLev 阅读全文
摘要:
概述 消息的消费是一个先从Broke拉到client端,再consume的过程 客户端有一个PullMessageService线程拉取消息,然后把消息放到缓存中(红黑树结构),然后启动 ConsumeMessageService线程消费这些消息,这个过程会使用Consumer启动时注册的Liste 阅读全文
摘要:
想要学习RMQ最好的办法是看源码,所以需要在本地调试,,我用的是4.9.x版本 1、首先从自己的仓库clone源码,下载后目录结构如图所示, 其中,各个目录的作用分别: acl broker :消息存储 client: producer和consumer实现 common: 通用组件 dev dis 阅读全文