总结|学习笔记

简介: 快速学习总结

开发者学堂课程【RocketMQ知识精讲与项目实战(第一阶段)总结】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/702/detail/12391


总结

 

内容介绍:

一. MQ介绍

二. RocketMQ 快速入门

三. RocketMQ 集群搭建

四. 消息发送样例

 

一.MQ介绍

1.为什们使用MQ

MQ 应用场景主要包含3个方面:(1)应用解耦(2)流量削峰(3)数据分发

2.各种MQ产品的优点和缺点比较

多家 MQ 产品比较中最终选择性能良好的 RocketMQ,其不仅经受过双十一的高并发业务考验,而且由 java 编写,较容易进行二次开发。

 

二.RocketMQ快速入门

1.安装RocketMQ

2.解压RocketMQ

3.启动RocketMQ-启动分为两个步骤首先启动 NameServer 其次启动 Broker。

4.测试RocketMQ -进行发送消息和接受消息的测试。

 

三.RocketMQ集群搭建

公司中使用 MQ,为保证 MQ的 高可用,可选择 MQ 集群搭建,搭建集群最终采用双主双从集群搭建。

image.png

学习两种集群管理模式:

1. mqadmin 管理工具

2. 搭建集群监控平台-搭建集群可视化平台,通过这个可视化平台,可以方便地看

到集群中消息的状态,包括生产者,消费者,主题等状态信息。

 

四.消息发送样例

1.基本消息

基本消息中着重对消息生产者和发送者强调了如下几点:

(1)发送同步消息(2)发送异步消息(3)发送单向消息

消息消费者中包含两种方式第一是负载均衡第二是广播模式。 

2.顺序消息

保证消息的发送顺序通常是保证其局部顺序,即将当前业务相关的一组消息发到一个队列,消息消费者针对一个队列的消息的消费使用单线程去处理,以保证消息的顺序。

3.延时消息

延时消息是生产者发送消息之后,消息不会立即被投递到消息的消费者,会延迟一定时间。但是目前 RocketMQ 不支持任意时间设定,需要设置几个固定的延时等

级,当前 RocketMQ 指定预设好的级别,从1s到2h,共18个级别可选择。

4.批量消息

注意问题:使用批量消息要注意批量消息大小不超过4M,如果消息超过4M 会发送

失败,若真的有超过4M 的批量消息存在时要进行分割处理。

5.过滤消息

过滤消息分为两种方式一是根据 TAG 二是根据 SQL 进行过滤。

6.事务消息

重点是在消息的发送方,消息的消费方没什么区别。消息的发送方通过几个步骤:

image.png

通过事务消息发送的消息实际是个半消息,暂时对消费方不可见,消费方不会去消费,MQ 收到半消息后,会调用事务的监听器去执行你的本地事务,执行完本地事务之后,进行消息处理,一是提交二是回滚,若既没有提交也没有回滚,其会通过另外的方法回查消息状态。在此过程中,提交的消息能够被消费,回滚信息会被删

掉,不会被消费者消费。

事务消息的使用限制:

1.不支持延时消息和批量消息。

2.事务消息为了避免消息的堆积,默认单个消息的检查次数为15次。如果15次均未进行处理,未查询消息状态,MQ 会自动丢弃此消息。

3.我们可以针对检查时间进行设定

4.事务消息不止一次被检查或消费,因为检查多次,可能会造成重复消息,所以要在消费方做好幂等性检查。

5. 保证高可靠必须依靠 MQ 集群形式。

6.生产者 ID 不能与其他类型消息生产者 ID 共享。

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
数据采集 SQL 消息中间件
第三阶段总结|学习笔记
快速学习第三阶段总结
131 0
第三阶段总结|学习笔记
|
自然语言处理 算法 开发者
CJKAnalyzer|学习笔记
快速学习 CJKAnalyzer
139 0
CJKAnalyzer|学习笔记
|
自然语言处理 前端开发 Java
TermQuery|学习笔记
快速学习 TermQuery。
126 0
TermQuery|学习笔记
|
SQL 运维 监控
小打卡|学习笔记
快速学习小打卡
124 0
小打卡|学习笔记
|
C++ 开发者 Python
|
前端开发 Java 网络架构
合法性检查|学习笔记
快速学习合法性检查
178 0
|
Java 数据安全/隐私保护 开发者
属性驱动 | 学习笔记
快速学习属性驱动,介绍了属性驱动系统机制, 以及在实际应用过程中如何使用。
|
云安全 安全 网络安全
总结 | 学习笔记
快速学习总结
104 0
|
人工智能 算法 开发者
SDV 要解决的问题 | 学习笔记
快速学习 SDV 要解决的问题
161 0
|
存储 开发者 Python
练习3|学习笔记
快速学习练习3