RocketMQ
共同学习RocketMQ
静谧之心
专业摩的佬
业余吉他手
退役喷子
展开
-
RocketMQ 消费者核心配置详解
RocketMQ 消费者核心配置consumeFromWhere 配置(某些情况失效:参考https://blog.csdn.net/a417930422/article/details/83585397)这个配置基本不用改,采用默认配置即可。CONSUME_FROM_FIRST_OFFSET: 初次从消息队列头部开始消费,即历史消息(还储存在 broker 的)全部消费一遍,后续再启动接着上次消费的进度开始消费。CONSUME_FROM_LAST_OFFSET: 默认策略,初次从该队列最尾开始消费原创 2020-08-12 14:57:55 · 2890 阅读 · 0 评论 -
RocketMQ-生产者-消息的返回状态
FLUSH_DISK_TIMEOUT如果设置了 FlushDiskType=SYNC_FLUSH (默认是 ASYNC_FLUSH),并且 Broker 没有在 syncFlushTimeout (默认是 5 秒)设置的时间内完成刷盘,就会收到此状态码。FLUSH_SLAVE_TIMEOUT如果设置为 SYNC_MASTER,并且 slave Broker 没有在 syncFlushTimeout 设定时间内完成同步,就会收到此状态码。SLAVE_NOT_AVAILABLE如果设置为 SYNC_M原创 2020-08-12 13:50:20 · 2076 阅读 · 1 评论 -
SpringCloudAlibaba全家桶之 深度剖析RocketMQ 中 Topic/Queue
Topic首先需要提到的概念是Topic。Topic是RocketMQ中的一个重要概念,RocketMQ的各组件都是围绕着Topic建立起对应关系的。在RocketMQ官方文档和本文中, Topic在不同的语境下被赋予了两种不同的语义:消息的Topic属性值在描述Consumer的订阅设置信息或消息的属性时。Topic属性为某个值的消息(单个消息或消息集合)在描述Broker,Producer和Consumer的对应关系,Queue以及负载均衡策略时。为了实现消息队列的水平扩展和原创 2020-08-11 16:28:32 · 3907 阅读 · 3 评论 -
SpringCloudAlibaba全家桶之 RocketMQ 服务快速搭建(包含可视化console)
RocketMQ 介绍简介RocketMQ 是一款分布式、队列模型的消息中间件,具有以下特点:能够保证严格的消息顺序提供丰富的消息拉取模式高效的订阅者水平扩展能力实时的消息订阅机制亿级消息堆积能力选用理由:强调集群无单点,可扩展,任意一点高可用,水平可扩展。海量消息堆积能力,消息堆积后,写入低延迟。支持上万个队列消息失败重试机制消息可查询开源社区活跃成熟度(经过双十一考验)安装步骤(这里只示范单机模式)1. 上传解压安装包tar -xvf apache-rocke原创 2020-08-10 10:36:13 · 1007 阅读 · 1 评论 -
RocketMQ之NameServer源码浅析
NameServer简介NameServer是整个消息队列中的状态服务器,集群的各个组件通过它来了解全局的信息 。 同时,各个角色的机器都要定期向 NameServer上报自己的状态,超时不上报的话, NameServer 会认为某个机器出故障不可用了,其他的组件会把这个机器从可用列表里移除 。看下阿里中间件团队对NameServer特点总结:Name Server是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。Name Server 源码总共1000+ 行 说明了是一个非常轻量级的协调中原创 2020-08-14 10:44:47 · 2472 阅读 · 1 评论 -
RocketMQ 生产者核心参数配置详解
生产者常见核心配置compressMsgBodyOverHowmuch :消息超过默认字节4096后进行压缩retryTimesWhenSendFailed : 失败重发次数maxMessageSize : 最大消息配置,默认128ktopicQueueNums : 主题下面的队列数量,默认是4autoCreateTopicEnable : 是否自动创建主题Topic, 开发建议为true,生产要为falsedefaultTopicQueueNums : 自动创建服务器不存在的topic,默认原创 2020-08-12 14:38:39 · 2849 阅读 · 1 评论 -
RocketMQ 深入分析 Offset 与 CommitLog
消息偏移量 Offsetmessage queue 是无限长的数组,一条消息进来下标就会涨1,下标就是 offset,消息在某个 MessageQueue 里的位置,通过 offset 的值可以定位到这条消息,或者指示 Consumer 从这条消息开始向后处理。message queue 中的 maxOffset 表示消息的最大 offset,maxOffset 并不是最新的那条消息的 offset,而是最新消息的 offset+1,minOffset 则是现存在的最小 offset。fileRese原创 2020-08-12 17:08:06 · 2691 阅读 · 2 评论 -
深入分析RocketMQ 长轮询推送机制
RocketMQ消费端有两种获取消息的方式,Push方式和Pull方式。但这两种方式都有一定的缺陷,后来采用了一种折中的方法,采用”长轮询“的方式,它既可以拥有Pull的优点,又能达到保证实时性的目的。长轮询的思想:服务端接收到新消息请求后,如果队列里没有新消息,并不急于返回,通过一个循环不断查看状态,每次waitForRunning一段时间(默认是5秒),然后再Check。Broker默认最长阻塞时间为15秒,默认情况下当Broker一直没有新消息,第三次Check的时候,等待时间超过最长阻塞时间,就原创 2020-08-13 10:56:10 · 2952 阅读 · 2 评论