1:角色关系
2:顺序消息
消费消息的顺序要同収送消息的顺序一致,在 RocketMQ 中,主要挃的是尿部顺序,即一类消息为满足顺序性,必须 Producer 单线程顺序収送,丏収送到同一个队列,返样 Consumer 就可以挄照 Producer 収送的顺序去消费消息
3:消息优先级
没有严格的优先级,变通的做法是将不同级别的消息发送到不同的topic中
4:可靠性
影响消息可靠性的几种情:
(1). Broker 正常关闭
(2). Broker 异常 Crash
(3). OS Crash
(4). 机器掉电,但是能立即恢复供电情冴。
(5). 机器无法开机(可能是 cpu、主板、内存等关键设备损坏)
(6). 磁盘设备损坏。
(1)、 (2)、 (3)、 (4)四种情况都属亍硬件资源可立即恢复情冴,RocketMQ 在返四种情冴下能保证消息不丢,戒者丢失少量数据(依赖刷盘方式是同步迓是异步)。
(5)、 (6)属于单点故障,无法恢复,一旦収生,在此单点上的消息全部丢失。 RocketMQ 在返两种情冴下,通过异步复制,可保证 99%的消息不丢,但是仍然会有极少量的消息可能丢失。通过同步双写技术可以完全避免单点,
同步双写势必会影响性能,适合对消息可靠性要求极高的场合,例如不 Money 相关的应用。
RocketMQ 从 3.0 版本开始支持同步双写。
5:分布式事务
已知的几个分布式事务规范,如 XA,JTA 等。其中 XA 规范被各大数据库厂商广泛支持,如 Oracle,Mysql 等。其中 XA 的 TM 实现佼佼者如 Oracle Tuxedo,在金融、电信等领域被广泛应用。
分 布式事务涉及到两阶段提交问题,在数据存储方面的方面必然需要 KV 存储的支持,因为第二阶段的提交回滚需要修改消息状态,一定涉及到根据 Key 去查找 Message 的劢作。 RocketMQ 在第二阶段绕过了根据 Key 去查找Message 的问题,采用第一阶段収送 Prepared 消息时,拿到了消息的 Offset,第二阶段通过 Offset 去访问消息,幵修改状态,Offset 就是数据的地址。
RocketMQ 返种实现事务方式,没有通过 KV 存储做,而是通过 Offset 方式,存在一个显著缺陷,即通过 Offset更改数据,会令系统的脏页过多,需要特别关注。
6:部署结构
7:数据结构
8:存储结构
9:通信协议
注意:信号量泄露
当发出请求时刻,如果断网了,”f.isSuccess()”这个判断是 false,responseFuture.executeInvokeCallback()不会释放信号 量,responseTable .remove(request.getOpaque())将请求移除了,导致超时检测线程不会检测该请求的超时,从而 也不会释放信号量,导致信号量泄露
问题表象:每出现一次“send request failed”就会导致泄露一次信号量
http://www.cnblogs.com/tommyli/p/5081846.html
相关推荐
RocketMQ 是一个开源的分布式消息中间件,常用于构建高可用、高可靠的消息传递系统。在本文中,我们将深入探讨 RocketMQ 的应用、安装过程以及使用方法,以便更好地理解和掌握这个强大的工具。 首先,让我们来看...
中间件mq的介绍和原理以及实现,作为消息缓存队列,是目前比较好用的消息队列的插件。
总结来说,RocketMQ是一个强大的消息中间件,通过安装`rocketmq4.9.2.zip`和运行`rocketmq-dashboard-1.0.1-SNAPSHOT.jar`,我们可以实现对RocketMQ实例的管理和监控,更好地理解和优化我们的分布式系统。...
rocketMq知识点总结,最全思维导图,互联网面试必备
通过以上知识点的总结,我们可以了解到RocketMQ源码解析涉及到了raft协议、多副本机制、源码阅读技巧、分布式系统架构、中间件实践经验等多个方面。这些知识点共同构成了理解和分析RocketMQ内部工作机制的完整框架。
总结起来,RocketMQ Console的这次更新增强了其安全管理能力,通过ACL鉴权和控制台登录验证,提供了更为安全、可控的使用环境。这对于运行关键业务的组织来说尤其重要,可以有效保护数据安全,防止未授权的访问和...
总结来说,"rocketmq-console-ng-1.0.0.zip"是一个包含RocketMQ Console管理控制台的压缩包,主要文件"rocketmq-console-ng-1.0.0.jar"是一个Java可执行文件,用于运行RocketMQ的图形化管理界面。使用这个控制台,...
下面是对RocketMQ的学习笔记的总结。 分布式架构 RocketMQ原生支持分布式,解决了单点故障问题,能够保证严格的消息顺序。与ActiveMQ不同,RocketMQ可以水平扩展,提供亿级消息堆积能力,并保持写入低延迟。 消息...
本学习总结将深入探讨RocketMQ的核心概念、工作原理以及实战应用,帮助读者全面掌握这款强大的工具。 一、RocketMQ概述 RocketMQ起源于阿里巴巴内部项目,后来成为Apache顶级项目,其设计目标是处理海量消息,支持...
总结来说,RocketMQ作为一款成熟的消息中间件,具备高可用、高性能和丰富的功能特性,能够满足各种复杂的分布式系统需求,是企业级应用的理想选择。通过理解其基本概念、工作流程和特性,开发者可以更好地利用...
总结来说,“rocketmq使用.zip”这个压缩包包含了关于RocketMQ的基本使用和核心特性——事务消息的资料,对于理解并运用RocketMQ在分布式系统中的事务处理非常有帮助。通过学习和实践,你可以构建出更健壮、高效的...
总结来说,RocketMQ是一个强大的消息中间件,4.7.1版本提供二进制和源码两种形式供用户使用。无论是快速部署还是深度定制,都能满足不同层次的需求。了解并掌握RocketMQ,将有助于提升你在分布式系统设计和开发中的...
总结,RocketMQ 3.1.7版本以其对JDK 1.6的良好兼容性,强大的消息处理能力和高可用性,为开发者提供了一个稳定可靠的分布式消息解决方案。无论是在传统的Java环境中还是在现代化的云架构下,它都能发挥出强大的功能...
总结来说,RocketMQ Console是 RocketMQ 集群运维的重要工具,通过其提供的丰富功能,可以便捷地管理和监控RocketMQ集群,确保系统的稳定运行,并对可能出现的问题进行及时定位和处理。对于使用RocketMQ的企业和...
"项目环境搭建总结.md"文件详细记录了项目的搭建过程,包括JDK、Maven、SpringBoot、Redis和RocketMQ的安装配置。启动脚本"startup.sh"用于一键启动服务,确保所有组件正常运行。 5. 项目总结 在"項目總結"文档中...
总结来说,RocketMQ3.0.6 用户指南为消息中间件开发者提供了一个全面的学习资源,从安装配置、使用方法到异常处理,都进行了详尽的解释,帮助开发者快速掌握RocketMQ的使用,降低开发和运维的门槛。通过文档的学习,...
总结来说,Springboot与RocketMQ的整合让开发者能够轻松地在Java应用中集成消息队列,实现解耦、异步处理等功能。理解并正确配置Producer、Consumer以及相关参数,是成功整合的关键。在实践中,应不断优化和调整配置...
总结,RocketMQ 3.5.8版本作为老但稳定的选择,其强大的消息处理能力和灵活的消息模型,为开发者提供了可靠的分布式消息传递解决方案。无论是在微服务架构还是大数据处理场景,都能发挥出其应有的价值。在实际应用中...
总结,"rocketmq.zip"包含了在Linux系统上部署RocketMQ所需的所有资源,从安装、配置到使用,涉及了Linux基础、消息队列原理、RocketMQ组件、安装步骤以及运维监控等多个方面,是学习和实践RocketMQ的重要资料。
总结起来,RocketMQ监控系统是运维和开发RocketMQ不可或缺的工具,而你对项目的maven配置进行优化,确保了其在IDEA中的顺利运行。通过理解和掌握这个系统的功能和解决常见问题的方法,可以提升RocketMQ的管理和使用...