RocketMQ事务消息, 图文、源码学习探究~ 介绍 RocketMQ是阿里巴巴开源的分布式消息中间件,它是一个高性能、低延迟、可靠的消息队列系统,用于在分布式系统中进行异步通信。 从4.3.0版本开始正式支持分布式事务消息~ RocketMq事务消息支持最终一致性:在普通消息基础上,支持二阶段的提交能力。将二阶段提交和本地事务绑定,实现全局提交结果的一致性。 原理、流程 本质上RocketMq的事务能力是基于二阶段提交来实现的 在消息发送上, 开发运维 2023-08-23 醒在深海的猫
相当通俗易懂的RocketMQ顺序消息 归去,也无风雨也无晴。 哈喽大家好呀,好久不见,今天继续来跟大家聊一聊RocketMQ吧,上回书说到了RocketMQ的性能优化,有兴趣的同学可以回去翻一翻上一篇文章: 关于RocketMQ那些你可能不知道的性能优化 其实顺序消息是业务中常用的功能之一,只要是使用MQ的,就不太可能绕的过去这个问题。就算是业务上不需要保证顺序消息,但是作为开发,作为码农,怎么着都要跟你的PM确认一下需求的啦,那肯定 开发运维 2023-08-18 共饮一杯
DDD 架构分层,MQ消息要放到那一层处理? 作者:小傅哥 博客:bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 本文的宗旨在于通过简单干净实践的方式教会读者,使用 Docker 配置 RocketMQ 并在基于 DDD 分层结构的 SpringBoot 工程中使用 RocketMQ 技术。因为大部分 MQ 的发送都是基于特定业务场景的,所以本章节也是基于 《MyBatis 使用教程和插件开发》 章节的扩展。 本章也会 开发运维 2023-08-18 共饮一杯
3分钟白话RocketMQ系列—— 如何存储消息 白话3分钟,快速了解RocketMQ如何存储消息。 看完如果不了解,欢迎来打我。 我们知道RocketMQ主要分为消息 生产、存储、消费 三大块领域。 那接下来,我们白话一下,RocketMQ是如何存储消息的,揭秘消息存储全过程。 注意,如果白话中不小心提到相关代码配置与类名,请参考RocketMQ 4.9.4版本 关键字摘要 存储模型与存储类型 如何保证存储消息不丢失 如何提高写入性能 如何清理 开发运维 2023-08-18 大白菜程序猿
RocketMQ消息轨迹产生的背景以及使用方式 这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党 背景 最近在维护RocketMQ经常会出现这种问题 消息发送方和接收方出现扯皮,消息发送方说我的消息已经发送成功了,消费方说我没接收到消息。两边各持己见,谁也不会说服谁。这时候就非常希望RocketMQ能有消息的一个消息发送和消费的一个业务log了,类似什么时候发送了消息,什么时候消费了消息,消费成功 开发运维 2023-08-15 向阳逐梦
三分钟白话RocketMQ系列—— 如何存储消息 我们知道RocketMQ主要分为消息 生产、存储(消息堆积)、消费 三大块领域。 那接下来,我们白话一下,RocketMQ是如何存储消息的,揭秘消息存储全过程。 注意,如果白话中不小心提到相关代码配置与类名,请参考RocketMQ 4.9.4版本 开发运维 2023-08-14 Escape
聊聊 RocketMQ 名字服务 NameServer 是专为 RocketMQ 设计的轻量级名字服务,它的源码非常精简,八个类 ,少于1000行代码。 图片 这篇文章, 笔者会从基础概念、Broker发送心跳包、NameServer 维护路由、Zookeeper vs NameServer 四个模块揭秘名字服务的设计精髓。 一、基础概念 图片 NameServer 是一个非常简单的 Topic 路由注册中心,其角色类似 Dubb 开发运维 2023-08-10 向阳逐梦
RocketMQ 在业务消息场景的优势详解 作者:隆基 01 消息场景 RocketMQ 5.0 是消息事件流一体的实时数据处理平台,是业务消息领域的事实标准,很多互联网公司在业务消息场景会使用 RocketMQ。 我们反复提到的“消息、业务消息”,指的是分布式应用解耦,是 RocketMQ 的业务基本盘。通过本文,我们将深入了解 RocketMQ 5.0 在业务消息场景的优势能力,了解为什么 RocketMQ 能够成为业务消息领域的事实标 云计算 2023-08-09 醒在深海的猫
三分钟白话RocketMQ系列—— 如何发送消息 我们知道RocketMQ主要分为消息 生产、存储(消息堆积)、消费 三大块领域。 那接下来,我们白话一下,RocketMQ是如何发送消息的,揭秘消息生产全过程。 注意,如果白话中不小心提到相关代码配置与类名,请参考RocketMQ 4.9.4版本 关键字摘要 哪些消息类型? 发给谁? 怎么发? 怎么知道发成功了还是失败了? 发失败了怎么办? Q1: RocketMQ有哪些消息类型? RocketM 开发运维 2023-08-09 向阳逐梦
3分钟白话RocketMQ系列—— 如何发送消息 白话3分钟,快速了解RocketMQ如何发送消息。 看完如果不了解,欢迎来打我。 我们知道RocketMQ主要分为消息 生产、存储(消息堆积)、消费 三大块领域。 那接下来,我们白话一下,RocketMQ是如何发送消息的,揭秘消息生产全过程。 注意,如果白话中不小心提到相关代码配置与类名,请参考RocketMQ 4.9.4版本 关键字摘要 哪些消息类型? 发给谁? 怎么发? 怎么知道发送成功了还是 开发运维 2023-08-09 泡泡
DDD 架构,MQ 应该放那一层使用? 本文的宗旨在于通过简单干净实践的方式教会读者,使用 Docker 配置 RocketMQ 并在基于 DDD 分层结构的 SpringBoot 工程中使用 RocketMQ 技术。因为大部分 MQ 的发送都是基于特定业务场景的,所以本章节也是基于 《MyBatis 使用教程和插件开发》 章节的扩展。 本章也会包括关于 MQ 消息的发送和接收应该处于 DDD 的哪一层的实践讲解和使用。 本文涉及的工程 开发运维 2023-08-05 大白菜程序猿
深扒RocketMQ源码之后,我找出了RocketMQ消息重复消费的7种原因 在众多关于MQ的面试八股文中有这么一道题,“如何保证MQ消息消费的幂等性”。 为什么需要保证幂等性呢?是因为消息会重复消费。 为什么消息会重复消费? 明明已经消费了,为什么消息会被再次被消费呢? 不同的MQ产生的原因可能不一样 本文就以RocketMQ为例,来扒一扒RocketMQ中会导致消息重复消息的原因,最终你会发现,其实消息重复消费算是RocketMQ无奈的“bug”。 消息发送异常时重复发 开发运维 2023-07-31 张二河
RocketMQ发送消息还有这种坑?遇到SYSTEM_BUSY不重试? 这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党 RocketMQ版本 5.1.0 背景 最近线上的RocketMQ集群遇到了如下问题,业务方的小伙伴反馈问题,说出现了 MQBrokerException:CODE:2DESC:[TIMEOUT_CLEAN_QUEUE]broker busy,start flow control for a whil 开发运维 2023-07-31 大白菜程序猿
6.RocketMQ同步消费与异步消费 落花人独立, 微雨燕双飞 一、前言 上篇文档主要给大家介绍了下RocketMQ消费者相关内容,其中提到过消费者底层和Broker进行通信的时候,有两种模式,分别是同步消费和异步消费,不知道大家有没有过类似的疑问,netty底层本身是基于java nio的,按理说都是异步非阻塞的,那么RocketMQ是如何实现同步阻塞调用的呢?对于异步调用,如何区分response对应的请求呢?看完今天这篇文章,以 开发运维 2023-07-25 穿过生命散发芬芳
3分钟白话RocketMQ系列—— 核心概念 白话3分钟,快速了解RocketMQ基础,包括适用场景,以及基本概念。 看完如果不了解,欢迎来打我。 关键字摘要 低延迟、高可用、高可靠、高并发 的消息中间件 适合在线业务 分为producer、consumer、nameserver、broker等角色 另外还有主题(Topic)、队列(MessageQueue)、消息(Message)、消费者组(ConsumerGroup)、订阅关系(Subs 开发运维 2023-07-25 向阳逐梦
RocketMQ第十二章单体服务部署实战 背景 可以在以下场景使用单体服务部署 私有化部署场景,客户只有一台服务器,却需要消息队列进行业务处理 运维人力有限,分布式集群无力维护 测试环境中只需单个Broker节点满足业务开发即可 部署过程 我们直接使用开源一键docker部署环境 hub.docker.com/r/xuchengen… 具体操作过程如下: # 拉取最新镜像 docker pull xuchengen/rocketmq:la 系统运维 2023-07-25 醒在深海的猫
三分钟白话RocketMQ系列—— 核心概念 白话3分钟,快速了解RocketMQ基础,包括适用场景,以及基本概念。 看完如果不了解,欢迎来打我。 关键字摘要 低延迟、高可用、高可靠、高并发 的消息中间件 适合在线业务 分为producer、consumer、nameserver、broker等角色 另外还有主题(Topic)、队列(MessageQueue)、消息(Message)、消费者组(ConsumerGroup)、订阅关系(Subs 开发运维 2023-07-25 共饮一杯
缓存你知道,堆外缓存池你知道吗? 1.引言 Hi,大家好,我是有清 缓存我们都知道,在我们日常的工作过程中一般都有使用,一般我们使用的都是堆内缓存,但是我一提到堆外缓存,想必 堆外缓存顾名思义,这部分数据是放在堆内存以外,因为堆外内存并不在 GC 的工作范围之内,所以可以有效的避免缓存过大对于 GC 的影响,听起来好像很棒的样子 但是我们今天讲的堆外缓存池更棒,它可以使我们的 RocketMQ 性能加倍,那它具体是如何助力 Roc 开发运维 2023-07-25 共饮一杯
从源码角度聊聊RocketMQ 消息(文件)删除机制 这里是weihubeats,觉得文章不错可以关注公众号小奏技术,文章首发。拒绝营销号,拒绝标题党 RocketMQ版本 5.1.0 入口 这里消息删除的源码入口其实不太好直接确定,我们可以通过启动broker的代码开始即BrokerStartup的main方法 这里我们直接进入到controller.start();方法看看 里面的代码很长,我们可以看到有一个方法startBasicService 开发运维 2023-07-25 醒在深海的猫
透彻剖析贯穿RocketMQ的消息消费长轮训机制体系的原理分析 DefaultMQPushConsumer 使用系统控制读取操作的DefaultMQPushConsumer可以自动调用传入的处理方法来处理收到的消息。通过设置各种参数和传入处理消息的函数,使用DefaultMQPushConsumer的主要目的是方便配置和处理消息。在收到消息后,系统会自动保存Offset,并且如果加入了新的DefaultMQPushConsumer,系统会自动做负载均衡。 Ro 开发运维 2023-07-24 醒在深海的猫