
RocketMQ
文章平均质量分 60
java1234_小锋
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
❤️花了一天,肝了一套RockeMQ分布式消息队列视频教程,保证你一天掌握,第二天就上手开搞!
大家好,我是锋哥,我是一名鼎鼎小名的10年Java老湿;因为没有钱做推广,所以只能靠免费课程宣传,然后你懂的…最近花了一天时间,撸了个RocketMQ分布式消息队列实战课程视频教程,免费分享给大家,文章底部有百度网盘分享链接;锋哥做过市场调研,很多公司放弃了RabbitMQ转用RocketMQ 以及特定高吞吐量、低延迟的场景用kafka,所以不管老司机还是新手小司机,还是要掌握RocketMQ;RocketMQ是由阿里捐赠给Apache的一款低延迟、高并发、高可用、高可靠的分布式消息中间件。经原创 2021-09-19 10:12:50 · 4768 阅读 · 60 评论 -
17 Rocketmq集群双主双从同步搭建
基于前面一主一从同步搭建我们企业级开发,一般采用的是双主双从同步,以及异步刷盘;同步消息保证消息不丢失,异步刷盘提高吞吐量;我们VM里再克隆两台机器;192.168.0.110 机器 作为m1主节点192.168.0.103 机器作为s1从节点192.168.0.111 机器 作为m2主节点192.168.0.112 机器作为s2从节点首先,我们把namesrvAddr配置修改,每个broker都要注册到所有nameserver;namesrvAddr=192.168.0.110:9876原创 2021-09-18 09:47:58 · 1504 阅读 · 1 评论 -
16 Rocketmq集群一主一从同步搭建
基于前面的单机模式,我们VM里面克隆一下系统;192.168.0.110 机器 作为主节点192.168.0.103 机器作为从节点配置项要点:brokerClusterName集群名称一样;brokerName同一组主从节点名称一样;brokerId为0表示Master主节点,非0表示Slave从节点;所以,从节点机器,我们修改conf下的2m-2s-sync配置文件broker-a-s.properties从原来的broker-a.properties复制一份内容到br原创 2021-09-18 09:40:38 · 1785 阅读 · 1 评论 -
15 Centos单机搭建Rocketmq运行环境
先把rocketmq上传到/hom/data/目录下;为了方便,我们统一用finalshell工具上传;/home/下面再新建一个mq目录用来存放rocketmq安装文件;进入data目录,解压rocketmq压缩包到mq目录unzip rocketmq-all-4.9.0-bin-release.zip -d ../mq假如unzip没安装,可以安装下yum install -y unzip zip为了操作方便我们把解压后的文件名改成rocketmq,工具里右击重命名即可;roc原创 2021-09-18 09:35:15 · 1132 阅读 · 1 评论 -
14 RocketMQ集群介绍
NameServer是一个几乎无状态节点,可集群部署,节点之间无任何信息同步。Broker部署相对复杂,Broker分为Master与Slave,一个Master可以对应多个Slave,但是一个Slave只能对应一个Master,Master与Slave 的对应关系通过指定相同的BrokerName,不同的BrokerId 来定义,BrokerId为0表示Master,非0表示Slave。Master也可以部署多个。每个Broker与NameServer集群中的所有节点建立长连接,定时注册Top...原创 2021-09-18 09:28:59 · 1069 阅读 · 1 评论 -
13 SpringBoot整合RocketMQ实现过滤消息-根据SQL表达式过滤消息
SQL表达式方式可以根据发送消息时输入的属性进行一些计算。RocketMQ的SQL表达式语法 只定义了一些基本的语法功能。数字比较,如>,>=,<,<=,BETWEEN,=;字符比较,如:=,<>,IN;IS NULL or IS NOT NULL;逻辑运算符:AND, OR, NOT;常量类型:数值,如:123, 3.1415;字符, 如:‘abc’, 必须使用单引号;NULL,特殊常量Boolean, TRUE or FALSE;上实例,发送三个原创 2021-09-14 16:35:20 · 1913 阅读 · 2 评论 -
12 SpringBoot整合RocketMQ实现过滤消息-根据TAG方式过滤消息
消息发送端只能设置一个tag,消息接收端可以设置多个tag。接收消息端通过 ‘||’ 设置多个tag,如下:tag1 || tag2 || tag3 || …上实例,生产端发送三个消息,TAG分别是TAG1,TAG2,TAG3/** * 发送带Tag消息,测试根据Tag过滤消息 */public void sendMessageWithTag(){ // 构造消息1 Message msg1 = MessageBuilder.withPayload("rocketmq过滤消息测试-TAG01原创 2021-09-14 16:34:33 · 4008 阅读 · 2 评论 -
11 SpringBoot整合RocketMQ实现事务消息
事务消息是RocketMQ提供的非常重要的一个特性,在4.x版本之后开源,可以利用事务消息轻松地实现分布式事务。RocketMQ在其消息定义的基础上,对事务消息扩展了两个相关的概念:Half(Prepare) Message——半消息(预处理消息)半消息是一种特殊的消息类型,该状态的消息暂时不能被Consumer消费。当一条事务消息被成功投递到Broker上,但是Broker并没有接收到Producer发出的二次确认时,该事务消息就处于"暂时不可被消费"状态,该状态的事务消息被称为半消息。Messa原创 2021-09-14 16:33:42 · 2453 阅读 · 2 评论 -
10 SpringBoot整合RocketMQ实现延迟消息
延迟消息对于消息中间件来说,producer 将消息发送到mq的服务器上,但并不希望这条消息马上被消费,而是推迟到当前时间节点之后的某个时间点,再将消息投递到 queue 中让 consumer 进行消费。 延迟消息的使用场景很多,一种比较常见的场景就是在电商系统中,订单创建后,会有一个等待用户支付的时间窗口,一般为30分钟,30分钟后 customer 会收到这条订单消息,然后程序去订单表中检查当前这条订单的支付状态,如果是未支付的状态,则自动清理掉,这样就不需要使用定时任务的方式去处理原创 2021-09-10 11:33:05 · 2492 阅读 · 1 评论 -
9 SpringBoot整合RocketMQ实现顺序消息
rocketmq默认发送的消息是进入多个消息队列,然后消费端多线程并发消费,所以默认情况,不是顺序消费消息的;有时候,我们需要实现顺序消费一批消息,比如电商系统,订单创建,支付,完成等操作,需要顺序执行;RocketMQTemplate给我们提供了SendOrderly方法(有多个重载),来实现发送顺序消息;包括以下:syncSendOrderly,发送同步顺序消息;asyncSendOrderly,发送异步顺序消息;sendOneWayOrderly,发送单向顺序消息;一般我们用第一种发送同原创 2021-09-10 11:20:15 · 2694 阅读 · 1 评论 -
8 SpringBoot整合RocketMQ实现消费者广播模式和负载均衡模式
如上图,假如我们有多个消费者,消息生产者发送的消息,是每一个消费者都消费一次呢?还是通过一些机制,比如轮询机制,每个消息只被某一个消费者消费一次呢?这里涉及到消费者的消费模式,一种是广播模式,还有一种是负载均衡模式;广播模式是每个消费者,都会消费消息;负载均衡模式是每一个消费只会被某一个消费者消费一次;我们业务上一般用的是负载均衡模式,当然一些特殊场景需要用到广播模式,比如发送一个信息到邮箱,手机,站内提示;我们可以通过@RocketMQMessageListener的messageModel属.原创 2021-09-04 09:20:39 · 3954 阅读 · 2 评论 -
7 SpringBoot整合RocketMQ发送单向消息
发送单向消息是指producer向 broker 发送消息,执行 API 时直接返回,不等待broker 服务器的结果 。这种方式主要用在不特别关心发送结果的场景,举例:日志发送;RocketMQTemplate给我们提供了sendOneWay方法(有多个重载),来实现发送单向消息;下面给一个实例:/** * 发送单向消息 */public void sendOneWayMessage(){ for(int i=0;i<10;i++){ rocketMQTemplate.sendO原创 2021-09-04 09:14:30 · 922 阅读 · 1 评论 -
6 SpringBoot整合RocketMQ发送异步消息
发送异步消息是指producer向 broker 发送消息时指定消息发送成功及发送异常的回调方法,调用 API 后立即返回,producer发送消息线程不阻塞 ,消息发送成功或失败的回调任务在一个新的线程中执行 。相对发送同步消息,异步消息性能更高,可靠性略差。适合对响应时间要求高的业务场景。RocketMQTemplate给我们提供了asyncSend方法(有多个重载),来实现发送异步消息;下面给一个实例:/** * 发送异步消息 */public void sendAsyncMessage原创 2021-09-01 15:25:56 · 2501 阅读 · 2 评论 -
5 SpringBoot整合RocketMQ发送同步消息
发送同步消息是指producer向 broker 发送消息,执行 API 时同步等待, 直到broker 服务器返回发送结果;相对异步发送消息,同步会阻塞线程,性能相对差点,但是可靠性高,这种方式得到广泛使用,比如:短信通知,邮件通知,站内重要信息通知等。RocketMQTemplate给我们提供了syncSend方法(有多个重载),来实现发送同步消息;下面给一个实例:/** * 发送同步消息 */public void sendSyncMessage(){ for(int i=0;i<原创 2021-09-01 15:22:51 · 1612 阅读 · 1 评论 -
4 SpringBoot整合RocketMQ实现消息发送和接收
我们使用主流的SpringBoot框架整合RocketMQ来讲解,使用方便快捷;最终项目结构如下:具体步骤如下:第一步:新建SpringBoot项目rocketmq-test,引入rocketmq依赖,以及项目配置<dependency> <groupId>org.apache.rocketmq</groupId> <artifactId>rocketmq-spring-boot-starter</artifactId> <v原创 2021-08-24 23:02:44 · 4867 阅读 · 8 评论 -
3 RocketMQ可视化控制台安装与使用
RocketMQ提供了一些扩展项目支持,地址:https://github.com/apache/rocketmq-externals其中一个rocketmq-connect-console项目,就是我们需要的可视化控制台;我们把整个项目下载下来,打开rocketmq-connect-console项目;项目是SpringBoot开发;打开application.properties配置文件,我们至少需要修改两个配置项;server.port=8080,这个是可视化项目启动端口,我们改成8888原创 2021-08-22 15:36:33 · 4973 阅读 · 15 评论 -
2 RocketMQ Server安装
RocketMQ依赖Java环境,要求有JDK 1.8以上版本;支持Windows和Linux平台;支持源码方式安装和使用已经编译好的安装包安装;我们用windows平台安装RocketMQ Server编译好的安装包,来讲解RocketMQ;下载地址:https://rocketmq.apache.org/dowloading/releases/我们用最新版本:4.9.0 release:https://www.apache.org/dyn/closer.cgi?path=rocketmq/4.9原创 2021-08-19 12:06:32 · 1303 阅读 · 3 评论 -
1 RocketMQ简介
简介RocketMQ是由阿里捐赠给Apache的一款低延迟、高并发、高可用、高可靠的分布式消息中间件。经历了淘宝双十一的洗礼。RocketMQ既可为分布式应用系统提供异步解耦和削峰填谷的能力,同时也具备互联网应用所需的海量消息堆积、高吞吐、可靠重试等特性。官方文档:https://rocketmq.apache.org/docs/quick-start/github中文主页:https://github.com/apache/rocketmq/tree/master/docs/cn核心概念Top原创 2021-08-19 11:56:15 · 1069 阅读 · 3 评论