rocketmq
文章平均质量分 94
微笑看你哭
这个作者很懒,什么都没留下…
展开
-
RocketMQ学习(一)——基本概念和集群搭建
在Metaq1.x/2.x的版本中,分布式协调采用的是Zookeeper,而RocketMQ自己实现了一个NameServer,所以RocketMQ启动时,先启动对应的NameServer。RocketMQ集群方式推荐的几种 Broker 集群部署方式,这里的Slave 不可写,但可读,类似于 Mysql主备方式。单个Master很显然,这种方式风险较大,一旦Broker重启或者宕机时...原创 2018-10-22 23:39:36 · 636 阅读 · 0 评论 -
RocketMQ学习(二)——重要参数和主从消息同步
生产者核心参数producerGroup: 组名。一个应用(JVM)中组名不能重复。defaultTopicQueueNums: 默认的topic对于Queue的数量,默认是4。sendMsgTimeout: 生产者发送消息的超时时间。compressMsgBodyOverHowmuch: 消息超过多大开始进行压缩,默认压缩字节4096。retryTimesWhenSendFailed:...原创 2019-10-18 18:07:57 · 611 阅读 · 0 评论 -
RocketMQ学习(三)——底层存储设计
MQ消息队列的一般存储方式当前业界几款主流的MQ消息队列采用的存储方式主要有以下三种方式:(1)分布式KV存储: 这类MQ一般会采用诸如levelDB、RocksDB和Redis来作为消息持久化的方式,由于分布式缓存的读写能力要优于DB,所以在对消息的读写能力要求都不是比较高的情况下,采用这种方式倒也不失为一种可以替代的设计方案。消息存储于分布式KV需要解决的问题在于如何保证MQ整体的可靠性?...原创 2018-10-24 11:38:32 · 2633 阅读 · 0 评论 -
RocketMQ学习(四)——RocketMQ消息发送
RocketMQ 网络架构图RocketMQ分布式消息队列的网络部署架构图如下图所示于上图中几个角色的说明:(1) NameServer: RocketMQ集群的命名服务器(也可以说是注册中心),它本身是无状态的(实际情况下可能存在每个NameServer实例上的数据有短暂的不一致现象,但是通过定时更新,在大部分情况下都是一致的),用于管理集群的元数据( 例如,KV配置、Topic、Bro...原创 2018-11-05 18:17:57 · 13437 阅读 · 0 评论 -
RocketMQ学习(五)——RocketMQ消费之pull和push
MQ中Pull和Push的两种消费方式对于任何一款消息中间件而言,消费者客户端一般有两种方式从消息中间件获取消息并消费。严格意义上来讲,RocketMQ并没有实现PUSH模式,而是对拉模式进行一层包装,名字虽然是 Push 开头,实际在实现时,使用 Pull 方式实现。通过 Pull 不断不断不断轮询 Broker 获取消息。当不存在新消息时,Broker 会挂起请求,直到有新消息产生,取消挂起...原创 2018-11-20 11:25:23 · 8303 阅读 · 0 评论 -
RocketMQ学习(六)——RocketMQ消息重试
RocketMQ的消息重试包含了producer发送消息的重试和consumer消息消费的重试。producer发送消息重试首先让我们看下发送请求是如何重试的,sendDefaultImpl是发送message到broker的处理方法,这个方法在前问发消息的文章中已经介绍,这里省略了与重试无关的代码。private SendResult sendDefaultImpl(Message m...转载 2018-11-20 21:30:41 · 3396 阅读 · 0 评论 -
RocketMQ学习(七)——RocketMQ延时消息
用户发送的消息也可以指定延时时间(更准确的说是延时等级),然后在指定延时时间之后投递消息,然后被consumer消费。阿里云的ons还支持定时消息,而且延时消息是直接指定延时时间,其实阿里云的延时消息也是定时消息的另一种表述方式,都是通过设置消息被投递的时间来实现的,但是Apache RocketMQ在版本4.2.0中尚不支持指定时间的延时,只能通过配置延时等级和延时等级对应的时间来实现延时。...原创 2018-11-21 20:56:27 · 1222 阅读 · 1 评论 -
RocketMQ学习(八)——RocketMQ顺序消息
顺序消息消息有序指的是可以按照消息的发送顺序来消费。例如:一笔订单产生了 3 条消息,分别是订单创建、订单付款、订单完成。消费时,要按照顺序依次消费才有意义。与此同时多笔订单之间又是可以并行消费的。首先来看如下示例:假如生产者产生了2条消息:M1、M2,要保证这两条消息的顺序,应该怎样做?你脑中想到的可能是这样:这样可以保证M1先于M2到达MQServer(生产者等待M1发送成功后再发送M...转载 2018-11-26 18:07:59 · 1434 阅读 · 0 评论 -
RocketMQ学习(九)——RocketMQ事务消息
1转载 2018-11-28 09:55:03 · 527 阅读 · 0 评论