草庐IT

rocketMq

全部标签

RocketMQ_高级功能

目录一、消息存储1、存储介质以及性能对比2、消息的存储和发送3、消息存储结构4、刷盘机制二、高可用性机制1、消息消费高可用2、消息发送高可用3、消息主从复制三、负载均衡1、Producer负载均衡2、Consumer负载均衡四、消息重试1、顺序消息的重试2、无需消息的重试五、死信队列1、死信特性2、查看死信信息六、消息幂等1、消息幂等的必要性2、处理方式一、消息存储消息队列由于要考虑到高可靠性的要求,相应的数据需要进行持久化存储。相应处理流程如下:1、消息生成者发送消息2、MQ收到消息,将消息进行持久化,在存储中新增一条记录3、返回ACK给生产者4、MQpush消息给对应的消费者,然后等待消费

RocketMQ进阶必学:事物消息

分布式事务在微服务中是比较常见且又比较棘手的难题,当然,它也并不是无解的,如果熟悉分布式事务的同学,应该知道XA、2PC/3PC、TCC、事务消息等解决方案。事务消息是分布式事务解决方案的一种,也是我们今天要讨论的主题。什么是事务消息?事务消息的目标,是为了实现可靠性消息最终一致性。这个又是怎么理解呢?举个例子可能大家就比较容易理解。还是我们比较常见的支付场景:用户支付下单,修改订单状态为完成,然后会通过MQ发送订单消息。下游服务比如积分系统更新用户的积分、物流系统需要更新订单的物流信息、推送系统需要给用户推送消息或者广告等。图片可以说这算是一个比较标准的微服务架构,根据业务领域划分不同业务系

Apache RocketMQ docker单机部署以及docker高可用部署方案

ApacheRocketMQ可以通过Docker进行单机部署和高可用部署。下面我将为你提供两种方案的概述。单机部署方案:1、拉取RocketMQ镜像:首先,从DockerHub上拉取RocketMQ官方提供的镜像。你可以使用以下命令来拉取最新版本的RocketMQ镜像:dockerpullrocketmqinc/rocketmq2、创建网络:在Docker中创建一个网络,用于RocketMQ容器之间的通信。你可以使用以下命令创建网络:dockernetworkcreaterocketmq-network3、启动Namesrv容器:创建一个Namesrv容器,负责管理Broker的元数据信息。使

RocketMQ 事务消息初体验

事务消息是RocketMQ的高级特性之一。这篇文章,笔者会从应用场景、功能原理、实战例子三个模块慢慢为你揭开事务消息的神秘面纱。1应用场景举一个电商场景的例子:用户购物车结算时,系统会创建支付订单。用户支付成功后支付订单的状态会由未支付修改为支付成功,然后系统给用户增加积分。通常我们会使用普通消费方案,该方案能够发挥MQ的优势:异步和解耦 , 同时架构设计非常简单。图片用户购物车结算时,系统创建支付订单;支付成功后,更新订单的状态从未支付修改为支付成功;发送一条普通消息到消息队列服务端;积分服务消费消息,添加积分记录。但该方案有个非常直观的缺点:容易出现不一致的现象。假如先发送消息,后修改订单

RocketMQ

RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。核心概念主要由四大部分组成:1.Producer:生产者,可以集群部署。它会先和NameServer集群中的随机一台建立长连接,得知当前要发送的Topic存在哪台BrokeMaster上,然后再与其建立长连接,支持多种负载平衡模式发送消息。2.Consumer:消费者,可以集群部署。它也会先和NameServer集群中的随机一台建立长连接,得知当前要消息的Topic存在哪台BrokerMaster、Slave上,然后它们建立长连接,支持集群消费和广播消费消息。3.Bro

生于云、长于云,RocketMQ 5.0 再出发

7月21日-7月22日,由ApacheRocketMQ社区主办,阿里云天池平台、云原生应用平台承办的首届RocketMQSummit全球开发者峰会拉开帷幕。ApacheRocketMQ联合创始人林清山发布RocketMQ能力全景图,为众多开发者阐述RocketMQ5.0的技术定位与发展方向,来自快手、小米、字节跳动等互联网头部企业的40位演讲嘉宾与众多开发者分享各自行业的最佳实践与技术探索经验。阿里云云原生应用平台负责人丁宇表示,开源让云计算更加的标准化、云计算让开源产品化和规模化,未来的数字世界,将构建在云计算和开源之上。阿里巴巴将以开源的方式,践行开放共享好科技理念,把开源作为技术战略的重

36.RocketMQ之Broker如何实现磁盘文件高性能读写

highlight:arduino-lightBroker读写磁盘文件的核心技术:mmapBroker中大量的使用mmap技术去实现CommitLog这种大磁盘文件的高性能读写优化的。通过之前的学习,我们知道了一点,就是Broker对磁盘文件的写入主要是借助直接写入oscache来实现性能优化的,因为直接写入oscache,相当于就是写入内存一样的性能,后续等os内核中的线程异步把cache中的数据刷入磁盘文件即可。那么今天我们就要对这个过程中涉及到的mmap技术进行一定的分析。1.传统文件IO:4次数据拷贝首先我们先来给大家分析一下,假设RocketMQ没有使用mmap技术,就是使用最传统和

RocketMQ (九) 消费者分组-ConsumerGroup

目录1、消费者分组(ConsumerGroup)2、模型关系3、内部属性3.1消费者分组名称3.2投递顺序性3.3消费重试策略3.4订阅关系4、行为约束5、使用建议1、消费者分组(ConsumerGroup)消费者分组是ApacheRocketMQ系统中承载多个消费行为一致的消费者的负载均衡分组。和消费者不同,消费者分组并不是运行实体,而是一个逻辑资源。在ApacheRocketMQ中,通过消费者分组内初始化多个消费者实现消费性能的水平扩展以及高可用容灾。在消费者分组中,统一定义以下消费行为,同一分组下的多个消费者将按照分组内统一的消费行为和负载均衡策略消费消息。订阅关系:ApacheRock

RocketMQ (六) 主题-Topic

目录1、什么是Topic?2、模型关系3、内部属性3.1主题名称3.2队列列表3.3消息类型4、行为约束5、使用建议1、什么是Topic?Topic是RocketMQ中消息传输和存储的顶层容器,用于标识同一类业务逻辑的消息。Topic的作用主要如下:定义数据的分类隔离:在RocketMQ的方案设计中,建议将不同业务类型的数据拆分到不同的Topic中管理,通过Topic实现存储的隔离性和订阅隔离性。定义数据的身份和权限:RocketMQ的消息本身是匿名无身份的,同一分类的消息使用相同的Topic来做身份识别和权限管理。2、模型关系Topic是RocketMQ的顶层存储,所有消息资源的定义都在To

【Docker】RocketMQ5.1.0的配置部署与基于SpringBoot3.0.5的代码基础配置

目录一、项目信息1版本2依赖3配置4项目结构二、RocketMQ的Docker配置部署1RocketMQ部署1.1查看镜像1.2拉取镜像1.3查看已拉取镜像1.4创建挂载文件夹1.5启动容器以复制配置文件1.6创建broker.conf配置文件1.7文件夹赋权1.8启动容器1.9查看当前容器2部署RocketMQ可视化控制台2.1查看镜像2.2拉取镜像(默认最新版本)2.3启动容器2.4查看当前容器3开放对应端口4访问可视化控制台三、代码测试1根据项目信息搭建完成模块2补充配置信息(由于SpringBoot3.0以上版本所引发)2.1在resource下创建META-INF文件夹2.2在MET