开发者学堂课程【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 集群搭建,搭建集群最终采用双主双从集群搭建。
学习两种集群管理模式:
1. mqadmin 管理工具
2. 搭建集群监控平台-搭建集群可视化平台,通过这个可视化平台,可以方便地看
到集群中消息的状态,包括生产者,消费者,主题等状态信息。
四.消息发送样例
1.基本消息
基本消息中着重对消息生产者和发送者强调了如下几点:
(1)发送同步消息(2)发送异步消息(3)发送单向消息
消息消费者中包含两种方式第一是负载均衡第二是广播模式。
2.顺序消息
保证消息的发送顺序通常是保证其局部顺序,即将当前业务相关的一组消息发到一个队列,消息消费者针对一个队列的消息的消费使用单线程去处理,以保证消息的顺序。
3.延时消息
延时消息是生产者发送消息之后,消息不会立即被投递到消息的消费者,会延迟一定时间。但是目前 RocketMQ 不支持任意时间设定,需要设置几个固定的延时等
级,当前 RocketMQ 指定预设好的级别,从1s到2h,共18个级别可选择。
4.批量消息
注意问题:使用批量消息要注意批量消息大小不超过4M,如果消息超过4M 会发送
失败,若真的有超过4M 的批量消息存在时要进行分割处理。
5.过滤消息
过滤消息分为两种方式一是根据 TAG 二是根据 SQL 进行过滤。
6.事务消息
重点是在消息的发送方,消息的消费方没什么区别。消息的发送方通过几个步骤:
通过事务消息发送的消息实际是个半消息,暂时对消费方不可见,消费方不会去消费,MQ 收到半消息后,会调用事务的监听器去执行你的本地事务,执行完本地事务之后,进行消息处理,一是提交二是回滚,若既没有提交也没有回滚,其会通过另外的方法回查消息状态。在此过程中,提交的消息能够被消费,回滚信息会被删
掉,不会被消费者消费。
事务消息的使用限制:
1.不支持延时消息和批量消息。
2.事务消息为了避免消息的堆积,默认单个消息的检查次数为15次。如果15次均未进行处理,未查询消息状态,MQ 会自动丢弃此消息。
3.我们可以针对检查时间进行设定
4.事务消息不止一次被检查或消费,因为检查多次,可能会造成重复消息,所以要在消费方做好幂等性检查。
5. 保证高可靠必须依靠 MQ 集群形式。
6.生产者 ID 不能与其他类型消息生产者 ID 共享。