Apache RocketMQ在我司的最佳实践--智慧政务场景下的分布式消息与分布式事务

<本文已参与 RocketMQ Summit 优秀案例征文活动,点此了解详情>

缘起

对于Apache RocketMQ的了解,追溯起来,可以说是从开源初始,就认识到了它。那时候的它,还是个幼年,没有成熟的社区,也没有好的机制去运作。本身,也不算是成熟的产品。

但是,在阿里强大的技术背景驱动下,随着业务的支撑,它慢慢得到了长远的发展,更多的走向了大众的视野,也慢慢成为了一款优秀的消息队列中间件。

在技术选型中,可以作为一名佼佼者,为各个技术负责人提供技术支持。

缘与业务

对于我司传统的业务场景以及相关产品中,一般不会涉及到消息中间件的涉及。很有幸,公司的发展以及壮大,新的产品、新的业务场景进行了拓展。我司,也参与了智慧城市的相关业务场景建设。

很多的产品,属于互联网平台,因此,对于消息队列中间件的需求,就随之诞生,也就比较迫切。借助消息队列其减少相应所需的时间和削峰,降低系统耦合性的相关特性,构建更加健壮的平台产品。

实践从业务中来,到业务中去。本次分享便从一个企业服务平台的建设才讲述。

业务场景如下所示:

我司与政府大数据局,参与共建一个企业与企业、企业与政府之间互联互通的、信息交互的一个新型互联网平台。平台中,为企业提供了最便捷的沟通入口。

根据政府的需求,企业可以在线,实现政策申报、政策享受等一系列先进的、优秀的、便捷、快速的政府服务。同时,企业在平台中,跟其他企业可以实现在线服务申请、在线沟通。其中,平台上企业个人中心中会有个模块会消息中心。展示了,企业收到的来自各个方面的消息通知。

场景如下图所示:

缘与技术

本身作为分布式消息业务需要,同时为了降低系统耦合性,选择消息队列中间件,来完成消息中心的建设。

技术选型

四种常用的分布式消息队列开源软件:KafkaActiveMQRabbitMQ 及 RocketMQ

在分布式消息队列的江湖里,Kafka 凭借其优秀的性能占据重要一席。

Kafka 作为流平台具有以下三种能力:

  1. 发布和订阅记录流,类似于消息队列或企业消息系统;
  2. 具有容错能力,且可以持久化的方式存储记录流;
  3. 当记录流产生时(发生时),可及时对其进行处理。

Kafka 适用于两类应用:

  1. 建立实时流数据管道,在系统或应用之间可靠地获取数据;
  2. 建立对数据流进行转换或反应的实时流应用程序。

目前,Kafka更多的用于数据量大的大数据平台项目。

ActiveMQ 由 Apache 出品,据官网介绍,它是最流行和最强大的开源消息总线。ActiveMQ 非常快速,支持多种语言的客户端和协议,而且可以非常容易地嵌入到企业的应用环境中,并有许多高级功能。

ActiveMQ 基于 Java 语言开发,从使用的便捷性与开源程度,是可以承担起更多的职责。但是,目前由于

  1. 社区活跃度较低,更新慢,增加维护成本;
  2. 网络资料显示,ActiveMQ 存在一些莫名其妙的问题,会丢失消息;
  3. 目前,官方将重心放到 ActiveMQ 6.0 下一代产品 Apollo 上,对 5.x 的维护较少;
  4. 不适合用于上千个队列的应用场景。

因此,不适合更新迭代速度的互联网平台。

RabbitMQ 是流行的开源消息队列系统,支持多种客户端,如 Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP 等,支持 AJAX、持久化。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。但是,目前由于

  1. 尽管结合 Erlang 语言本身的并发优势,性能较好,但是不利于做二次开发和维护;
  2. 实现了代理架构,意味着消息在发送到客户端之前可以在中央节点上排队。此特性使得 RabbitMQ 易于使用和部署,但使得其运行速度较慢,因为中央节点增加了延迟,消息封装后也比较大;
  3. 需要学习比较复杂的接口和协议,学习和维护成本较高。

因此,综合考虑没有选择。

RocketMQ 由阿里研发团队开发的分布式队列,侧重于消息的顺序投递,具有高吞吐量、可靠性等特征。RocketMQ 与ActiveMQ一样,用 Java 语言实现,在设计时参考了 Kafka,并做出了自己的改进,在消息可靠性上比 Kafka 更好,RocketMQ 已经被业界多个大型互联网公司采用。

所谓实践是检验真理的唯一标准,实际应用中的表现比文字更具说服力。在阿里内部,RocketMQ 很好地服务了集团大大小小上千个应用,在每年的双十一当天,更有不可思议的万亿级消息通过 RocketMQ 流转(在 2017 年的双 11 当天,整个阿里巴巴集团通过 RocketMQ 流转的线上消息达到了万亿级,峰值 TPS 达到 5600 万),在阿里大中台策略上发挥着举足轻重的作用。

目前,社区活跃,开源程度高,本身经得起业务场景的考验,因此最终选型为RocketMQ。

部署架构

RocketMQ支持部署场景的自定义,同时支持高可用的部署方案。

对于当前平台的建设,存在DMZ区、金宏网区网络隔离环境。对于平台的中间件部署存在一些复杂的网络要求。

借用官网对于部署架构的图示:

对于我们在实践中的部署,同样采用了官方的部署实践。采用了多Master、多Slave异步复制的方式,即使磁盘损坏,消息丢失得非常少,消息实时性不会受影响,因为 Master 宕机后,消费者仍然可以从 Slave 消费,此过程对应用透明,不需要人工干预,性能同多 Master 模式几乎一样。

技术实现

对于RocketMQ的客户端消费者、服务端生产者来讲,采用Springboot作为技术开发框架,实现起来非常简单。

引入对应的POM依赖


<dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId><version>2.0.3</version>
</dependency>

应用配置文件修改


rocketmq:name-server: xxxx:9876producer:group: base_group_syncMsgsend-message-timeout: 5000retry-times-when-send-failed: 2max-message-size: 4194304

对应的添加相关注解、实现业务代码即可。

使用方便,功能强大,对于开发者来说非常友好,是一个很好的选择。

缘与分布式事务

写到这里,同时也描述下,采用了微服务技术解决方案后,在很多场景下,会产生分布式事务。那么,除了自实现,分布式事务框架,同时,我们可以采用消息队列来实现。

在本次实践中,我们有过进一步的实践。在此,就不多说。

缘与未来

实践看来,对于RocketMQ的落地过程中,虽有坎坷,但是达到了预想的效果。社区的文档也是比较满足实际落地需要,总体来说,是不错的。

在此,也希望社区越做越好吧,未来可期。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512023.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前沿分享|阿里云数据库资深技术专家 姚奕玮:AnalyticDB MySQL离在线一体化技术揭秘

简介&#xff1a; 本篇内容为2021云栖大会-云原生数据仓库AnalyticDB技术与实践峰会分论坛中&#xff0c;阿里云数据库资深技术专家 姚奕玮关于“AnalyticDB MySQL离在线一体化技术揭秘”的分享。 本篇内容将通过三个部分来介绍AnalyticDB MySQL离在线一体化技术。 一、传统大…

今年双11,阿里业务100%上云

简介&#xff1a; 阿里巴巴业务的研发效率提升了20%、CPU资源利用率提升30%、应用100%云原生化、在线业务容器可达百万规模&#xff0c;同时计算效率大幅提升&#xff0c;双11整体计算成本三年下降30%。 今天&#xff0c;阿里巴巴首席技术官程立宣布——2021天猫双11是首个100…

linux unshare 命令,详解Linux Namespace之User

User namespace 是 Linux 3.8 新增的一种 namespace&#xff0c;用于隔离安全相关的资源&#xff0c;包括 user IDs and group IDs&#xff0c;keys, 和 capabilities。同样一个用户的 user ID 和 group ID 在不同的 user namespace 中可以不一样(与 PID nanespace 类似)。换句…

从更高到更好 2021阿里双11背后的技术亮点

简介&#xff1a; 今年&#xff0c;是阿里巴巴第13个双11。今年双11&#xff0c;阿里巴巴大促峰值的计算成本相比去年下降50%&#xff1b;截至11日&#xff0c;小蛮驴无人车在双11期间累计配送快递已超过100万件。更多的阿里自研技术投入到双11&#xff0c;在芯片、服务器等硬核…

博时基金基于RocketMQ的基金数字化陪伴体系的架构实践

简介&#xff1a; 本文以博时基金的金融场景为案例&#xff0c;阐述RocketMQ在提升客户陪伴效率和丰富金融场景化能力等方面的提升作用。 <本文已参与 RocketMQ Summit 优秀案例征文活动&#xff0c;点此了解详情> 基于RocketMQ的基金数字化陪伴体系的架构实践 博时基金…

面对DNS劫持,只能坐以待毙吗?

简介&#xff1a; 借助 ARMS-云拨测&#xff0c;我们可实时对网站进行监控&#xff0c;实现分钟级别的监控&#xff0c;及时发现 DNS 劫持以及页面篡改。 作者&#xff1a;白玙 DNS 劫持作为最常见的网络攻击方式&#xff0c;是每个站长或者运维团队最为头疼的事情。苦心经营…

linux写程序四则运算,Shell编程之变量及四则运算

Shell的学习目标Shell的基本语法结构&#xff1a; 如&#xff1a;变量的定义、条件判断、循环语句(for、until、while)、分支语句、函数和数组等。基本正则表达式的应用文件处理&#xff1a;grep、sed、awk工具的使用使用shell脚本完成复杂的任务&#xff1a;服务搭建、批量处理…

博时基金基于 RocketMQ 的互联网开放平台 Matrix 架构实践

简介&#xff1a; 随着近两年业绩的抢眼&#xff0c;公募基金迎来了乘风破浪式的发展&#xff0c;截至 2021 年 1 月底&#xff0c;资产管理规模已破 20 万亿&#xff0c;创下了历史新高。 ​ <本文已参与 RocketMQ Summit 优秀案例征文活动&#xff0c;点此了解详情> 作…

首次 统一调度系统规模化落地,全面支撑阿里巴巴双 11 全业务

简介&#xff1a; 今年双 11 首次规模化亮相的统一调度&#xff0c;通过一套调度协议、一套系统架构&#xff0c;统一管理底层的计算、存储、网络资源&#xff0c;超大规模、高效率、自动化的资源弹性&#xff0c;实现了业界新的突破。在离线混部、离在线混部、新的快上快下技术…

日志服务Dashboard加速

简介&#xff1a; 阿里云日志服务致力于为用户提供统一的可观测性平台&#xff0c;同时支持日志、时序以及Trace数据的查询存储。用户可以基于收集到的各类数据构建统一的监控以及业务大盘&#xff0c;从而及时发现系统异常&#xff0c;感知业务趋势。但是随着收集到的数据量不…

明明还有空间,硬盘却写不进去了!

作者 | 阮一峰一、inode是什么&#xff1f;文件储存在硬盘上&#xff0c;硬盘的最小存储单位叫做"扇区"&#xff08;Sector&#xff09;。每个扇区储存512字节&#xff08;相当于0.5KB&#xff09;。操作系统读取硬盘的时候&#xff0c;不会一个个扇区地读取&#xf…

Dataphin核心功能(四):安全——基于数据权限分类分级和敏感数据保护,保障企业数据安全

简介&#xff1a; 《数据安全法》的发布&#xff0c;对企业的数据安全使用和管理提出了更高的要求。Dataphin提供基于数据分级分类和数据脱敏的敏感数据识别和保护能力&#xff0c;助力企业建立合规的数据安全体系&#xff0c;保障企业数据安全。本篇&#xff0c;我们就来聊聊D…

Quick BI产品核心功能大图(四):Quick引擎加速--十亿数据亚秒级分析

简介&#xff1a; 随着数字化进程的深入&#xff0c;数据应用的价值被越来越多的企业所重视。基于数据进行决策分析是应用价值体现的重要场景&#xff0c;不同行业和体量的公司广泛依赖BI产品制作报表、仪表板和数据门户&#xff0c;以此进行决策分析。 在利用BI产品进行数据分…

云厂商靠不靠谱?“国家级标准”鉴定结果来啦

近日&#xff0c;中国电子工业标准化技术协会信息技术服务分会&#xff08;ITSS分会&#xff09;正式公布最新一批通过信息技术服务标准符合性评估的企业名单。作为云计算领域首个权威分级评估体系&#xff0c;也是目前最健全的云服务能力评估体系&#xff0c;ITSS云服务能力符…

Spring Cloud Gateway一次请求调用源码解析

简介&#xff1a; 最近通过深入学习Spring Cloud Gateway发现这个框架的架构设计非常简单、有效&#xff0c;很多组件的设计都非常值得学习&#xff0c;本文就Spring Cloud Gateway做一个简单的介绍&#xff0c;以及针对一次请求Spring Cloud Gateway的处理流程做一个较为详细的…

函数计算GB镜像秒级启动:下一代软硬件架构协同优化

简介&#xff1a; 优化镜像加速冷启动大致分为两种做法&#xff1a;降低绝对延迟和降低冷启动概率。自容器镜像上线以来我们已经通过镜像加速技术&#xff0c;分阶段降低了绝对延迟。本文在此基础上&#xff0c;介绍借助函数计算下一代IaaS底座神龙裸金属和安全容器&#xff0c…

源码级别的广播与监听实现

作者 | 阿Q来源 | 阿Q说代码闲来无事&#xff0c;又翻了遍Spring的源码。不翻不知道&#xff0c;一翻吓一跳&#xff0c;之前翻过的源码已经吃进了肚子里&#xff0c;再见亦是陌生人。今天就带大家从源码的角度来分析一下广播与监听的底层实现原理。源码解析 为了实现广播与监听…

用代码玩剧本杀?第3届83行代码大赛剧情官方解析

简介&#xff1a; 由阿里云云效主办的2021年第3届83行代码挑战赛已经收官。超2万人围观&#xff0c;近4000人参赛&#xff0c;85个团队组团来战。大赛采用游戏闯关玩儿法&#xff0c;融合元宇宙科幻和剧本杀元素&#xff0c;让一众开发者玩得不亦乐乎。 说到剧本杀&#xff0c…

阿里大规模业务混部下的全链路资源隔离技术演进

简介&#xff1a; 本文作为混部实践系列开篇&#xff0c;本篇文章将介绍资源隔离技术在混部中的重要性、其落地挑战及我们的应对思路。 作者&#xff1a;钱君、南异 混部顾名思义&#xff0c;就是将不同类型的业务在同一台机器上混合部署起来&#xff0c;让它们共享机器上的 …

探索PCIe 3.0峰值性能,长江存储推新消费级固态硬盘致态TiPlus5000

2022年4月8日&#xff0c;长江存储推出新款消费级固态硬盘产品致态TiPlus5000。该产品采用基于晶栈 2.0&#xff08;Xtacking 2.0&#xff09;架构的长江存储第三代三维闪存芯片&#xff0c;支持PCIe Gen3x4接口、NVMe 1.3协议&#xff0c;顺序读取速度高达3500 MB/s&#xff0…