RocketMQ菜鸟进化系列
文章平均质量分 69
网络上的RocketMQ教程、博客非常之多,可以说是看的眼花缭乱,故本人在学习之余整理了下RocketMQ相关的文章并在此基础上略作调整,加上一些可以运行的源码案例(博主所有博客中的代码若非特殊说明都是可以运行的,如有问题可联系博主),以一个菜鸟的角度和大家一起学习,共同进步
东天里的冬天
Java技术专家,CSDN不常看,有问题可以通过微信公众号“假装正经的程序员”进行沟通
展开
-
各类消息队列(MQ)选择对比
微信公众号“假装正经的程序员”原创 2017-10-10 21:22:05 · 2111 阅读 · 0 评论 -
RocketMQ——汇总篇
一.基础篇1.初识RocketMQ2.消息幂等问题3.消息的存储4.顺序消息与重复消息二.环境篇1.虚拟机环境搭建2.双Master部署3.rocketmq-console控台部署4.admin管理命令5.查看死信队列三.实战篇1.入门代码案例2.广播消费模式与集群消费模式3.ACK机制保证消费成功4.PullConsumer拉取消息5.顺序消费6.消息过滤四.异常篇1.connect to 19...原创 2018-07-06 16:22:45 · 1658 阅读 · 0 评论 -
RocketMQ——消息过滤
RocketMQ 的消息过滤方式有别于其他消息中间件,是在订阅时,再做过滤,先来看下Consume Queue的存储结构。(1). 在Broker端进行Message Tag比对,先遍历 Consume Queue,如果存储的Message Tag 不订阅的 MessageTag不符合,则跳过,继续比对下一个,符合则传输给Consumer。注意:Message Tag是字符串形式,Consume ...原创 2018-07-05 10:54:57 · 5267 阅读 · 2 评论 -
RocketMQ——顺序消费(代码)
关于rocketmq顺序消费的理解和图示可以查看该博文:RocketMQ——顺序消费和重复消费本博客主要是以代码示例来了解顺序消费的相关内容,建议在此之前先了解下顺序消费的原理。注:RocketMQ可以严格的保证消息有序,但这个顺序,不是全局顺序,只是分区(queue)顺序,如果想要全局顺序,那么需要保证只有一个分区。1.producerpackage com.gwd.rocketmq;imp...转载 2018-07-03 17:42:01 · 11321 阅读 · 4 评论 -
RocketMQ——PullConsumer拉取消息
在RocketMQ中一般有两种获取消息的方式,一个是拉(pull,消费者主动去拉取),一个是推(push,主动推送给消费者),如下图push-优点:及时性、服务端统一处理实现方便push-缺点:容易造成堆积、负载性能不可控pull-优点:获得消息状态方便、负载均衡性能可控pull-缺点:及时性差前几篇博文主要以push为例的,本博文以pull为例.1.Producterpackage com.gw...原创 2018-07-02 15:51:41 · 13997 阅读 · 5 评论 -
RocketMQ——查看死信队列
在上篇博客中我们了解了RocketMQ的ACK机制,其中涉及到了消息消费重试,当重试次数达到默认的16次后(可以通过配置文件修改)如果对应的消息还没被成功消费的话,该消息会...原创 2018-06-27 14:08:12 · 17194 阅读 · 1 评论 -
RocketMQ——ack机制保证消费成功
ACK简介在实际使用RocketMQ的时候我们并不能保证每次发送的消息都刚好能被消费者一次性正常消费成功,可能会存在需要多次消费才能成功或者一直消费失败的情况,那作为发送者该做如何处理呢?RocketMQ提供了ack机制,以保证消息能够被正常消费。发送者为了保证消息肯定消费成功,只有使用方明确表示消费成功,RocketMQ才会认为消息消费成功。中途断电,抛出异常等都不会认为成功——即都会重...原创 2018-06-26 10:38:12 · 33504 阅读 · 14 评论 -
RocketMQ——管理命令
RocketMQ提供有控制台及一系列控制台命令,用于管理员对主题,集群,broker等信息的管理;使用步骤进入rocketmq目录下的bin目录,可以看到该目录下有个mqadmin脚本常用命令查看帮助:sh mqadmin help 命令名称例如,查看updateTopic的使用sh mqadmin help updateTopic创建(修改)topic...原创 2018-06-27 20:23:37 · 8621 阅读 · 4 评论 -
RocketMQ——广播消费模式与集群消费模式
如有疑问可通过微信公众号“假装正经的程序员”沟通原创 2018-06-25 16:13:54 · 42139 阅读 · 11 评论 -
RocketMQ——入门代码案例
该案例基于springboot,和普通的spring项目的主要差别在于大大减少了配置话,不了解的同学可以先参考的一下我的springboot干货专栏,学习之后你会知道什么叫爽歪歪,什么叫美滋滋,再也不用话太多时间在项目的配置上了。1.新建一个springboot项目2.引入对应的rocketmq的jar包,这里以比较经典的3.2.6的版本为例<dependency> ...原创 2018-06-24 11:25:31 · 5853 阅读 · 2 评论 -
RocketMQ——顺序消息和重复消息
一、顺序消息消息有序指的是可以按照消息的发送顺序来消费。例如:一笔订单产生了 3 条消息,分别是订单创建、订单付款、订单完成。消费时,要按照顺序依次消费才有意义。与此同时多笔订单之间又是可以并行消费的。首先来看如下示例:假如生产者产生了2条消息:M1、M2,要保证这两条消息的顺序,应该怎样做?你脑中想到的可能是这样:你可能会采用这种方式保证消息顺序假定M1发送到S1,M2发送到S2,如果要保证M1...翻译 2018-06-14 14:02:27 · 3402 阅读 · 0 评论 -
RocketMQ——消息的存储
RocketMQ的消息存储是由consume queue和commit log配合完成的。1、Consume Queueconsume queue是消息的逻辑队列,相当于字典的目录,用来指定消息在物理文件commit log上的位置。我们可以在配置中指定consumequeue与commitlog存储的目录每个topic下的每个queue都有一个对应的consumequeue文件,比如:${roc...转载 2018-06-14 12:04:47 · 5830 阅读 · 2 评论 -
RocketMQ——消息幂等问题
一、缘起MQ消息必达,架构上有两个核心设计点:(1)消息落地(2)消息超时、重传、确认再次回顾消息总线核心架构,它由发送端、服务端、固化存储、接收端四大部分组成。为保证消息的可达性,超时、重传、确认机制可能导致消息总线、或者业务方收到重复的消息,从而对业务产生影响。举个栗子:购买会员卡,上游支付系统负责给用户扣款,下游系统负责给用户发卡,通过MQ异步通知。不管是上半场的ACK丢失,导致MQ收到重复...原创 2018-06-11 17:28:33 · 7673 阅读 · 7 评论 -
RocketMQ——缺少com.google.common.cache.*相关jar
我在下载4.2.0这个版本后,解决了之前所说的Plugin execution not covered by lifecycle configuration和Missing artifact io.netty:netty-tcnative:jar:${os.detected.classifier}:1.1.33.Fork22问题后依然在rocket-filter中报错,错误如图:这个是缺少guav...原创 2018-06-12 08:36:45 · 2508 阅读 · 0 评论 -
RocketMQ——源码报错Missing artifact io.netty:netty-tcnative:jar:${os.detected.classifier}:1.1.33.Fork22
一.下载项目从官网下载下来的rocketmq-all-4.2.0(下载地址为:http://rocketmq.apache.org/release_notes/release-notes-4.2.0/)报错,项目结构如下二.Plugin execution not covered by lifecycle configuration错误具体报错内容:Plugin execution not cov...原创 2018-06-11 11:54:49 · 7877 阅读 · 0 评论 -
RocketMQ——rocketmq-console控台部署
一.下载项目github地址:https://github.com/apache/rocketmq-externals二.修改对应配置文件1.下载完整项目后解压;2.解压后进入rocketmq-console文件夹,进入到rocketmq-console/src/main/resources/下,打开application.properties文件,进行配置的修改;3.修改配置文件内容注意:roc...原创 2018-06-11 11:33:05 · 5646 阅读 · 0 评论 -
RocketMQ—connect to 192.168.xxx.xxx:9876 failed
sss原创 2018-06-23 17:48:22 · 12643 阅读 · 13 评论 -
RocketMQ——部署(一)双Master方式
一.上传RocketMQ对应的压缩包(官网可下) 1.上传 alibaba-rocketmq-3.2.6.tar.gz至两台服务器的/usr/local,我这边用的是虚拟机,两台服务器的内网IP分别为:192.168.140.128,192.168.140.129; 2.解压对应的包 执行如下命令: tar -zxvf alibaba-rocketmq-3.2.6....原创 2018-06-10 20:37:29 · 1151 阅读 · 1 评论 -
RocketMQ——虚拟机环境搭建
考虑到成本问题,本次所有RocketMQ项目均在虚拟机内部署一.虚拟机相关1.下载虚拟机下载地址:点击打开链接虚拟机的安装教程在上面的链接地址里面也有,本文不再多做赘述。2.下载Centos7相关镜像 (1)下载地址:点击打开链接 (2)版本选择,这边有三个版本来选择,我这边选择了minimal版本 (3)选择网址进行下载,如果某个下载很慢可以换个其他的地址 (4)运行相关的镜像文件,步骤:文件—...原创 2018-06-10 13:46:37 · 2042 阅读 · 0 评论 -
RocketMQ——初识RocketMQ
代码下载地址:https://github.com/apache/rocketmq各类MQ原创 2018-06-11 17:17:18 · 1822 阅读 · 0 评论