小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第一章深入剖析高性能RocketMQ4.X实战课程概要

第1集 互联网架构之深入剖析高性能RocketMQ4.X实战课程介绍

简介:深入剖析高性能RocketMQ4.X实战简介、适用人群和学习基础

 

 

 

 

 

 

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第二章 JMS介绍和消息中间件核心知识

 

第1集 JMS消息服务介绍和使用场景

简介:讲解什么是JMS,消息队列的使用场景

 

 

 

第2集 消息中间件常见概念和编程模型

简介:讲解消息中间件的常见概念和基础编程模型

 

 

 

第3集 主流消息队列和技术选型讲解

简介:对比当下主流的消息队列和选择问题

 

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第三章 RocketMQ4.X基础介绍和阿里云Linux服务器快速部署

第1集 阿里巴巴开源RocketMQ4.x消息队列介绍

简介:阿里开源消息队列 RocketMQ4.x介绍和新概念讲解

 

 

 

第2集 RocketMQ4.x本地源码部署(苹果系统底层是Unix系统)

简介:RocketMQ4.x本地快速部署

 

 

 

第3集 源码安装RocketMQ4.x可视化控制台

简介:源码安装RocketMQ4.x可视化控制台

 

 

 

 

第4集 RocketMQ4.x可视化控制台讲解

简介:讲解新版的RocketMQ可视化管理后台

测试中遇到的问题
maybe your broker machine memory too small
原因:磁盘空间不够

 

 

 

第5集 阿里云Linux服务器介绍和使用讲解

简介:阿里云服务器介绍和使用讲解

 

 

 

第6集 阿里云Linux服务器部署JDK8实战

简介:在阿里云服务器上安装JDK8和配置环境变量

 

 

 

 

第7集阿里云Linux服务器安装Maven实战

简介: Linux服务器下安装Maven

解压:tar -zxvf apache-maven-3.6.0-bin.tar.gz
重命名: mv apache-maven-3.6.0 maven
vim /etc/profile
export PATH=/usr/local/software/maven/bin:$PATH

立刻生效:source /etc/profile

 

 

 

 

第8集 阿里云服务器源码部署RocketMQ4.X(Linux系统)

简介:官方下载最新源码包,阿里云Linux服务器部署,解决内存不够问题

 

 

第9集 阿里云源码安装RocketMQ4.X控制台(Linux系统)

简介:阿里云服务器安装RocketMQ控制台

 

 

 

 

第10集 RocketMQ4.4.X源码导入IDEA

简介:将RocketMQ源码导入IDEA,为后续阅读源码做准备

 

 

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第四章 Springboot2.X整合RocketMQ4.X实战

 

第1集 Springboot2.x整合RocketMQ4.x实战发送消息

简介:Springboot2.x整合RocketMQ4.x实战,加入相关依赖,开发生产者代码

注意 :记得启动nameser和broker

 

常见错误一

org.apache.rocketmq.remoting.exception.RemotingTooMuchRequestException:
sendDefaultImpl call timeout
原因:阿里云存在多网卡,rocketmq都会根据当前网卡选择一个IP使用,当你的机器有多块网卡时,很有可能会有问题。比如,我遇到的问题是我机器上有两个IP,一个公网IP,一个私网IP, 因此需要配置broker.conf 指定当前的公网ip, 然后重新启动broker 
新增配置:conf/broker.conf  (属性名称brokerIP1=broker所在的公网ip地址 )
新增这个配置:brokerIP1=120.76.62.13  

启动命令:nohup sh bin/mqbroker -n localhost:9876  -c ./conf/broker.conf &

常见错误二

MQClientException: No route info of this topic, TopicTest1
原因:Broker 禁止自动创建 Topic,且用户没有通过手工方式创建 此Topic, 或者broker和Nameserver网络不通
解决:
通过 sh bin/mqbroker -m  查看配置
autoCreateTopicEnable=true 则自动创建topic

Centos7关闭防火墙  systemctl stop firewalld

 

常见错误三

控制台查看不了数据,提示连接 10909错误

原因:Rocket默认开启了VIP通道,VIP通道端口为10911-2=10909

解决:阿里云安全组需要增加一个端口 10909

其他错误:

https://blog.csdn.net/qq_14853889/article/details/81053145
https://blog.csdn.net/wangmx1993328/article/details/81588217#%E5%BC%82%E5%B8%B8%E8%AF%B4%E6%98%8E
https://www.jianshu.com/p/bfd6d849f156
https://blog.csdn.net/wangmx1993328/article/details/81588217

 

 

 

 

第2集 Springboot2整合RocketMQ4.x实战消费消息

简介:Springboot2.x整合RocketMQ4.x实战,开发消费者代码,常见问题处理

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第五章 高级篇幅之RocketMQ4.X集群架构讲解

第1集 RocketMQ4.X集群模式架构分析

简介:讲解RocketMQ4.X多种集群模式讲解

  1. 单节点 :

    优点:本地开发测试,配置简单,同步刷盘消息一条都不会丢

    缺点:不可靠,如果宕机,会导致服务不可用

  2. 主从(异步、同步双写) :

    优点:同步双写消息不丢失, 异步复制存在少量丢失 ,主节点宕机,从节点可以对外提供消息的消费,但是不支持写入

    缺点:主备有短暂消息延迟,毫秒级,目前不支持自动切换,需要脚本或者其他程序进行检测然后进行停止broker,重启让从节点成为主节点

  3. 双主:

    优点:配置简单, 可以靠配置RAID磁盘阵列保证消息可靠,异步刷盘丢失少量消息

    缺点: master机器宕机期间,未被消费的消息在机器恢复之前不可消费,实时性会受到影响

  4. 双主双从,多主多从模式(异步复制)

    优点:磁盘损坏,消息丢失的非常少,消息实时性不会受影响,Master 宕机后,消费者仍然可以从Slave消费

    缺点:主备有短暂消息延迟,毫秒级,如果Master宕机,磁盘损坏情况,会丢失少量消息

  5. 双主双从,多主多从模式(同步双写)

    优点:同步双写方式,主备都写成功,向应用才返回成功,服务可用性与数据可用性都非常高

    缺点:性能比异步复制模式略低,主宕机后,备机不能自动切换为主机

 

推荐方案2、4、5

 

 

 

第2集 消息可靠性之同步、异步刷盘

简介:讲解什么是同步刷盘和异步刷盘,主从模式如何保障消息可靠性

 

 

第3集 消息可靠性之同步、异步复制

简介:讲解消息的同步和异步复制

 

 

 

 

第4集 RocketMQ4.X集群高可用之主从模式搭建上集

简介:使用RocketMQ4.X搭建主从节点上集

 

机器列表

server1 ssh root@192.168.159.129
server2 ssh root@192.168.159.130
server3 ssh root@192.168.159.131
server4 ssh root@192.168.159.132

软件:RocketMQ4.X + JDK8 + Maven +CentOS7

 

 

 

第5集 RocketMQ4.X集群高可用之主从模式搭建下集

简介:使用RocketMQ4.X搭建主从节点下集

 

机器列表

server1 ssh root@192.168.159.129
server2 ssh root@192.168.159.130
server3 ssh root@192.168.159.131
server4 ssh root@192.168.159.132

 

1、修改RocketMQ(启动内存配置, 两个机器都要修改)

vim runserver.sh
JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m"

vim runbroker.sh
JAVA_OPT="${JAVA_OPT} -server -Xms528m -Xmx528m -Xmn256m"


启动两个机器的 nameserver
nohup sh bin/mqnamesrv &


全路径 
/usr/local/software/rocketmq/distribution/target/apache-rocketmq

2、编辑并启动rocketmq命令

主节点
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a.properties &

namesrvAddr=192.168.159.129:9876;192.168.159.130:9876
brokerClusterName=XdclassCluster
brokerName=broker-a
brokerId=0
deleteWhen=04
fileReservedTime=48
brokerRole=ASYNC_MASTER
flushDiskType=ASYNC_FLUSH
从节点
nohup sh bin/mqbroker -c conf/2m-2s-async/broker-a-s.properties &

namesrvAddr=192.168.159.129:9876;192.168.159.130:9876
brokerClusterName=XdclassCluster
brokerName=broker-a
brokerId=1
deleteWhen=04
fileReservedTime=48
brokerRole=SLAVE
flushDiskType=ASYNC_FLUSH

 

3、使用管控台

修改事项
pom.xml  里面的rocketmq版本号
application.properties里面的nameserver

增加 rocketmq.config.namesrvAddr=192.168.159.129:9876;192.168.159.130:9876

mvn install -Dmaven.test.skip=true

java -jar rocketmq-console-ng-1.0.0.jar

 

参考命令

centos7关闭防火墙 
systemctl stop firewalld

远程拷贝到本地
scp xdclass@192.168.0.106:/Users/xdclass/Desktop/xdclass/消息队列/data/第3章/第7集/apache-maven-3.6.0-bin.tar.gz /usr/local/software

scp root@192.168.0.106:/Users/xdclass/Desktop/xdclass/消息队列/data/第3章/第7集/apache-maven-3.6.0-bin.tar.gz /usr/local/software  


 

 

 

 

 

 

第6集 故障演练之主节点Broker退出保证消息可用

简介:讲解主节点Broker退出后,从节点可继续被消费者消费

步骤

 

 

第7集 RocketMQ4.X主从同步必备知识点

简介:讲解RocketMQ主从同步必备知识点

 

 

 

 

 

 

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第六章 RocketMQ生产者核心配置和核心知识讲解

第1集 消息队列RocketMQ4.X生产者核心配置讲解

简介:消息队列RocketMQ4.X核心配置讲解

 

 

第2集 核心知识之RocketMQ4.X消息发送状态

简介:讲解RocketMQ消息常见发送状态

 

 

第3集 核心知识之RocketMQ4.X生产和消费消息重试及处理

简介:讲解RocketMQ消息生产和消费异常重试和阈值设定

 

 

第4集 RocketMQ4.X异步发送消息和回调实战 小Dè¯¾å ‚

简介: 讲解使用RocketMQ异步发送消息

producer.send(message, new SendCallback(){
	onSuccess(){}
	onException(){}
})

 

注意:官方例子:如果异步发送消息,调用producer.shutdown()后会失败

异步发送:不会重试,发送总次数等于1

 

 

 

 

第5集 RocketMQ OneWay发送消息及多种场景对比 小Dè¯¾å ‚

简介:讲解使用RocketMQ发送oneway消息和使用场景,多种发送模式对比

 

汇总对比

发送方式发送 TPS发送结果反馈可靠性
同步发送不丢失
异步发送不丢失
单向发送最快可能丢失

 

 

 

 

第6集 RocketMQ延迟消息实战和电商系统中应用 小Dè¯¾å ‚

简介:讲解消息队列的延迟消息的使用,和在电商系统中应用场景

 

 

 

第7集 RocketMQ生产者之MessageQueueSelector实战 小Dè¯¾å ‚

简介:生产消息使用MessageQueueSelector投递到Topic下指定的queue,

//可以使用Jdk8的lambda表达式,只有一个方法需要被实现
producer.send(message, new MessageQueueSelector(){
			select(List<MessageQueue> mqs, Message msg, Object arg){
				Integer queueNum = (Integer)arg;
				return mqs.get(queueNum);
			}
	},0)

 

 

 

 

 

第8集 讲解顺序消息在电商和证券系统中应用场景 小Dè¯¾å ‚

简介:基础介绍顺序消息和对应可以使用的场景,订单系统,

 

 

 

 

 

第9集 核心知识之RocketMQ顺序消息讲解 小Dè¯¾å ‚

简介:讲解RocketMQ顺序消息的使用和讲解

 

 

 

第10集 案例实战之RocketMQ顺序消息生产者投递 小Dè¯¾å ‚

简介:讲解使用代码编写案例,进行RocketMQ顺序消息生产者投递

 

 

 

 

 

 

第11集 案例实战之RocketMQ顺序消息消息者消费实战

简介:讲解使用代码编写案例,进行RocketMQ顺序消息消费实战

 

 

 

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第七章 RocketMQ消费者核心配置和核心知识讲解

第1集 消息队列RocketMQ4.X消费者核心配置讲解 小Dè¯¾å ‚

简介:消息队列RocketMQ4.X消费者核心配置讲解

 

 

 

第2集 集群和广播模式下RocketMQ消费端处理 小Dè¯¾å ‚

简介:讲解集群模式下消费端消费消息流程


 

 

第3集 RocketMQ4.X里面的标签Tag实战和消息过滤原理

简介:讲解RocketMQ里面的Tag作用和消息过滤原理

 

 

常见错误:

The broker does not support consumer to filter message by SQL92

解决:broker.conf 里面配置如下
enablePropertyFilter=true

备注,修改之后要重启Broker
master节点配置:vim conf/2m-2s-async/broker-a.properties
slave节点配置:vim conf/2m-2s-async/broker-a-s.properties

 

 

 

第4集 PushConsumer、PullConsumer消费模式分析 小Dè¯¾å ‚

简介:讲解PushConsumer/PullConsumer消费消息模式分析

 

 

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第八章 高级篇幅之消息队列Offset和CommitLog讲解

 

第1集 源码解读RocketMQ消息偏移量Offset讲解

简介:讲解消息偏移量Offset

 

 

 

 

第2集 RocketMQ消息存储CommitLog讲解

简介:讲解消息队列CommitLog分析

 

 

 

第3集 高性能分析之ZeroCopy零拷贝技术讲解

简介:讲解ZeroCopy零拷贝技术讲解和分析

 

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第九章 高级篇幅之RocketMQ4.x分布式事务消息

 

 

第1集 分布式事务消息介绍

简介:讲解什么是分布式事务消息

 

 

 

 

 

第2集 新特性RocketMQ4.X分布式事务消息架构讲解 小Dè¯¾å ‚

简介:讲解RokcetMQ分布式事务消息的总体架构

 

 

第3集 RocketMQ分布式事务消息实战上集 小Dè¯¾å ‚

简介:讲解RocketMQ分布式事务消息实战上集

//监听器 ,执行本地事务
TransactionListener transactionListener = new TransactionListenerImpl();

//创建事务消息发送者
TransactionMQProducer producer = new TransactionMQProducer("unique_group_name");

//创建自定义线程池
//@param corePoolSize    池中所保存的核心线程数
//@param maximumPoolSize    池中允许的最大线程数
//@param keepActiveTime    非核心线程空闲等待新任务的最长时间
//@param timeunit    keepActiveTime参数的时间单位
//@param blockingqueue    任务队列
ExecutorService executorService = new ThreadPoolExecutor(2, 5, 100, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(2000), new ThreadFactory() {
            @Override
            public Thread newThread(Runnable r) {
                Thread thread = new Thread(r);
                thread.setName("client-transaction-msg-check-thread");
                return thread;
            }
        });
        
//设置producer基本属性        
producer.setNamesrvAddr(JmsConfig.NAME_SERVER);
producer.setExecutorService(executorService);
producer.setTransactionListener(transactionListener);
producer.start();

 

 

 

第4集 RocketMQ分布式事务消息实战下集 小Dè¯¾å ‚

简介:讲解RocketMQ分布式事务消息实战下集

 

 

 

 

 

第5集 源码分析之分布式事务消息发送端拆解 小Dè¯¾å ‚

简介:讲解RocketMQ分布式事务消息sendMessageInTransaction源码分析

 

 

 

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第十章 双主双从高性能RocketMQ服务搭建

第1集 双主双从高性能MQ服务架构讲解 小Dè¯¾å ‚

简介:讲解怎样搭建高可用集群,避免单点故障问题

 

 

 

 

 

 

第2集 RocketMQ双主双从搭建相关软件准备 小Dè¯¾å ‚

简介:讲解RocketMQ搭建双主双从集群环境相关准备

 

 

第3集 双主双从集群搭建和控制台配置讲解 小Dè¯¾å ‚

简介:讲解双主双从搭建和控制台配置

注意:如果连接不了broker,日志提示连接的端口少2位,记得检查防火墙是否关闭

修正上节课的错误 brokername名称

修改事项
pom.xml  里面的rocketmq版本号

路径 /usr/local/software/rocketmq-externals-master/rocketmq-console/src/main/resources

application.properties里面的nameserver

增加 rocketmq.config.namesrvAddr=192.168.159.133:9876;192.168.159.130:9876

mvn install -Dmaven.test.skip=true

java -jar rocketmq-console-ng-1.0.0.jar

本地测试记得关闭防火墙(4个机器都要)

CentOS 6.5关闭防火墙
servcie iptables stop 

centos7关闭防火墙 
systemctl stop firewalld
systemctl stop firewalld.service

 

 

 

 

 

 

第4集 RocketMQ生产环境操作和推荐配置 小Dè¯¾å ‚

简介:讲解生产环境RocketMQ的使用流程和推荐配置

 

 

 

 

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第十一章 消息队列面试专题

 

第1集 为什么使用消息队列,怎么选择技术 小Dè¯¾å ‚

简介:讲解为什么消息队列,消息队列选型问题

消息队列选择问题:Apache ActiveMQ、Kafka、RabbitMQ、RocketMQ

 

 

 

第2集 消息队列怎么避免重复消费 小Dè¯¾å ‚

简介:讲解怎么样可以避免重复消费

 

 

 

 

 

第3集 RocketMQ如何保证消息的可靠性传输 小Dè¯¾å ‚

简介:讲解如何保证消息的可靠性,处理消息丢失的问题

 

第4集 消息发生大量堆积应该怎么处理 小Dè¯¾å ‚

简介:如果消息大量堆积在broker里面,应该怎么处理

 

线上故障了,怎么处理

 

正确的姿势

 

第5集 RocketMQ高性能的原因分析 小Dè¯¾å ‚

简介:讲解RocketMQ高性能的原因分析,高可用架构

 

 

 

 

第6集 消息队列常见面试题回答总结

简介:讲解RocketMQ常见面试题汇总

 

 

 

小Dè¯¾å ‚ 愿景:"让编程不在难学,让技术与生活更加有趣" 更多教程请访问 xdclass.net


 

第十二章 RocketMQ高并发抗压实战课程总结

 

第1集 RocketMQ消息队列课程总结和后续规划

简介:总结RocketMQ课程和后续新的安排

综合项目实战,秒杀 或 拼团 或 聚合支付网关

技术选择:

 

 

 

 

 

 

小D课堂,愿景:让编程不在难学,让技术与生活更加有趣

相信我们,这个是可以让你学习更加轻松的平台,里面的课程绝对会让你技术不断提升

欢迎加小D讲师的微信: jack794666918

我们官方网站:https://xdclass.net

千人IT技术交流QQ群: 718617859

重点来啦:免费赠送你干货文档大集合,包含前端,后端,测试,大数据,运维主流技术文档(持续更新)

https://mp.weixin.qq.com/s/qYnjcDYGFDQorWmSfE7lpQ