朗新科技集团如何用云消息队列 RocketMQ 版“快、准、狠”破解业务难题?
作者:邹星宇、刘尧

朗新科技集团:让数字化的世界更美好
朗新科技集团股份有限公司是领先的能源科技企业,长期深耕电力能源领域,通过新一代数字化、人工智能、物联网、电力电子技术等新质生产力,服务城市、产业、生活中的能源场景,推动社会绿色发展。
朗新科技集团初创于 1996 年,总部位于江苏无锡,在国内外设有多个研发中心和分支机构,长期为超过 1.2 万多家政企客户和 4.7 亿多大众生活用户提供技术与运营服务,在电力营销数字化、新能源汽车聚合充电、分布式光伏云以及家庭能源缴费等领域处于全国领先地位。
朗新科技集团持续在相关领域探索创新,推动能源绿色低碳转型,惠及千家万户。作为国家鼓励的重点软件企业,朗新荣获了多项行业权威认证和奖项,连续四年荣登中国新经济企业 500 强榜单,并在多个能源科技细分领域保持领先地位,促进整个行业的繁荣发展。

业务扩张背景下,消息队列面临诸多挑战
朗新科技集团的核心业务之一聚焦于聚合充电场景,专注面向企业(ToB)和政府(ToG)提供充电桩业务。在充电桩系统中,关键事件包括“充电开始”、“充电结束”、“故障告警”等。通过分布式消息队列 RocketMQ 可以实现这些事件消息的异步处理,以增强系统的灵活性和可扩展性。此外,RocketMQ 还承担着传递计费请求、支付状态等消息的重要职责,对于确保整个支付流程顺畅进行至关重要。
然而,随着新能源汽车产业的迅猛发展,新能源汽车保有量激增,充电桩规模以及充电服务需求呈现指数级增长趋势。在此背景下,朗新科技集团积极实施战略扩张,但原先基于阿里云 ECS 自建并维护的开源 RocketMQ 却逐渐暴露出诸多问题,包括运维成本高、系统稳定性不足以及难以应对大规模的数据吞吐量等,这些问题对用户体验造成了显著影响。核心业务痛点如下:
1. 稳定性问题: 出现消息丢失现象。ToB 和 ToG 业务对于服务的可用性和数据的可靠性要求极高,消息数据丢失是不可接受的。因为一条充电桩状态消息的丢失,就可能导致用户跑空电却无法充电的问题,对用户体验造成很大影响。
2. 系统架构缺少容灾: 充电桩业务对跨可用区、跨地域容灾有迫切需求,随着业务规模增长,以及产业中心的分布式转移规划,明确需要建设跨地域容灾系统。然而,技术团队在多可用区容灾方面的技术储备与经验不够丰富。
3. 运维成本过高: 每天业务消息量的波峰波谷明显且差值较大,波谷期资源利用率偏低,容易导致资源浪费,造成成本冗余。此外,临时扩容周期长且需大量人力投入。
共建云消息队列 RocketMQ 版:优势显著,业务难题迎刃而解
稳定可靠&弹性降本
针对业务痛点 1 和 3,朗新决定与阿里云共建云消息队列 RocketMQ 版 5.0 Serverless系列。 其作为 RocketMQ 的商业版本,在确保消息收、发的可靠性以及实现数据多副本存储方面,都有卓越的表现。Serverless 系列能够有效应对流量波峰波谷显著的问题,不仅有助于降低资源成本,还减少了实例弹性伸缩和运维的人力投入。带来的核心优势如下:
- 提高服务可用性: 自建开源 RocketMQ 的 SLA 保障不充分,一旦出现故障,需要运维人员自行处理和恢复等。而云消息队列 RocketMQ 版原生支持多可用区部署,服务可用性最高可达 99.99%。
- 提高数据可靠性: 自建开源 RocketMQ 需要运维人员自行管理多副本 HA,运维门槛高。而云消息队列 RocketMQ 版默认支持三副本 HA,提供数据的多级存储,数据可靠性最高可达 10个9。
- 提高资源利用率,降低成本: 自建开源 RocketMQ 为了确保能够处理业务峰值流量,需要按照最高需求购买实例规格,容易造成资源浪费。而云消息队列 RocketMQ 版 5.0 Serverless 系列采用动态资源调整策略,根据实时业务负载自动弹性伸缩,按量付费,无需预先估算并配置实例规格。

提高可用性和容错力
针对业务痛点 2,朗新当前自建开源 RocketMQ 采用的是单中心系统架构,当单中心异常时,将影响整个业务系统。为此,朗新计划采用云消息队列 RocketMQ 版建设双活中心, 以提升系统的可用性和容错能力。云消息队列 RocketMQ 版提供全球消息备份的容灾能力,能够支持多中心灾备、双活系统架构的系统建设。带来的核心优势如下:
- 提高数据可靠性: 通过在两地数据中心的消息中间件之间实现全量数据同步备份,提高数据可靠性。
- 增强服务连续性: 借助消息服务的两地容灾机制,保证服务高可用性,业务可快速恢复,延续性强。
- 降低开发成本: 简化配置和管理,轻松实现两地数据的相互备份,提高效率并节省业务的开发成本。

为何选择云消息队列 RocketMQ 版?
朗新之所以和阿里云共建云消息队列 RocketMQ 版,主要归于以下几个关键因素:
- 高可靠性和高可用性: RocketMQ 诞生于阿里巴巴集团,历经多年“双十一”万亿级数据洪峰验证。作为国内领先的云服务提供商之一,阿里云运营着国内规模最大的 RocketMQ 集群,支撑了云上数十万客户的生产应用实践。云消息队列 RocketMQ 版提供 SLA,保障服务的高可用性和数据的高可靠性,为企业核心业务链路保驾护航。
- 支持灾备与双活架构: 云消息队列 RocketMQ 版通过成熟的产品化能力和解决方案,助力企业快速构建灾备、双活系统架构。面对数据中心或地域级别的故障时,能够实现业务的快速切换与恢复,从而有效避免业务上的巨大损失,显著增强系统的整体稳定性。
- Serverless 弹性降本: 云消息队列 RocketMQ 版 5.0 Serverless 系列采用存储计算分离架构,具备自适应弹性能力,能够高效处理突发流量,并且无需运维,按实际使用量计费。朗新在切换到云消息队列 RocketMQ 版 Serverless 实例后,使用成本相较自建降低了 30%。
展望未来,朗新科技集团将进一步深化与阿里云消息队列团队的合作,依托自身丰富的能源领域技术实践,以及阿里云强大的基础设施、产品能力,携手推进行业数字化进程,促进能源科技行业的发展。
相关文章:
朗新科技集团如何用云消息队列 RocketMQ 版“快、准、狠”破解业务难题?
作者:邹星宇、刘尧 朗新科技集团:让数字化的世界更美好 朗新科技集团股份有限公司是领先的能源科技企业,长期深耕电力能源领域,通过新一代数字化、人工智能、物联网、电力电子技术等新质生产力,服务城市、产业、生活中…...
【Ubuntu】Ubuntu的Desktop(学习/用户使用)和Bit版本(工作)
这篇文章似乎没什么必要写,但想了想还是决定记录一下,也许对新手入坑Ubuntu会有帮助, 事实上也很简单,一个是桌面版本,另一个是字符界面版本。 桌面版:拥有图形桌面 字符界面,易上手ÿ…...
cmake CMAKE_CURRENT_SOURCE_DIR和CMAKE_CURRENT_LIST_DIR的区别
在 CMake 中,CMAKE_CURRENT_LIST_DIR 和 CMAKE_CURRENT_SOURCE_DIR 都是指代当前 CMake 文件所在的路径,但它们的含义和用途有所不同: CMAKE_CURRENT_LIST_DIR: 表示 当前处理的 CMake 文件(例如 CMakeLists.txt&#…...
学会用VSCode debug
本文主要介绍了 VS Code 的调试功能,包括其强大的内置调试器,支持多种语言,如 JavaScript、TypeScript 等。通过简单项目示例展示调试过程,还介绍了运行面板和菜单、启动配置、调试操作、断点、记录点等功能,以及三种调…...
C语言专题之结构体的使用
结构体(struct)是一种用户自定义的数据类型,它允许将不同类型的数据组合在一起,形成一个新的数据类型。结构体在编程中非常常见,尤其是在需要处理复杂数据结构的情况下。以下是结构体的基本使用方法: 一、结…...
python中的高阶函数
1、什么是高阶函数? 高阶函数是指将函数作为参数传入。就是高阶函数 2、高阶函数有哪些? map 映射函数 >>> print(list(map(lambda x:x*x,range(1,11)))) [1, 4, 9, 16, 25, 36, 49, 64, 81, 100] >>> print(list(map(lambda x:st…...
学习笔记063——通过使用 aspose-words 将 Word 转 PDF 时,遇到的字体改变以及乱码问题
文章目录 1、问题描述:2、解决方法: 1、问题描述: Java项目中,有个需要将word转pdf的需求。本人通过使用aspose-words来转换的。在Windows中,转换是完全正常的。但是当部署到服务器时,会出现转换生成的pdf…...
SpringBoot整合Mockito进行单元测试超全详细教程 JUnit断言 Mockito 单元测试
Mock概念 Mock叫做模拟对象,即用来模拟未被实现的对象可以预先定义这个对象在特定调用时的行为(例如返回值或抛出异常),从而模拟不同的系统状态。 导入Mock依赖 pom文件中引入springboot测试依赖,spring-boot-start…...
【AI知识】过拟合、欠拟合和正则
一句话总结: 过拟合和欠拟合是机器学习中的两个相对的概念,正则化是用于解决过拟合的方法。 1. 欠拟合: 指模型在训练数据上表现不佳,不能充分捕捉数据的潜在规律,导致在训练集和测试集上的误差都很高。欠拟合意味着模…...
MacOS编译webRTC源码小tip
简单记录一下,本人在编译webRTC时,碰到了一下比较烦人的问题,在MacOS终端下,搭建科学上网之后,chromium的depot_tools仓库成功拉下来了,紧接着,使用fetch以及gclient sync始终都返回curl相关的网…...
Linux基础命令(三):文件压缩及解压缩命令
文件压缩及解压缩命令 tar — 打包和压缩 tar 是一个用于打包文件的工具,常常用来将多个文件或目录打包成一个单独的文件。它本身不进行压缩,但可以与压缩工具(如 gzip 或 bzip2)一起使用。 用法: 打包文件࿰…...
目标跟踪算法:ByteTrack、卡尔曼滤波、匈牙利算法、高置信度检测目标、低置信度检测目标
目录 1 ByteTrack特点 2 ByteTrack和SORT区别----个人通俗理解 3 ByteTrack算法原理 4 ByteTrack整体流程图 上一篇博客我复习了下SORT跟踪算法,这一篇博客我再复习下ByteTrack跟踪算法,ByteTrack里面也是用了卡尔曼滤波和匈牙利算法&#x…...
[定昌linux系统]如何安装jdk8
1:下载jdk8 的 arm64 的版本,由于官方下载需要gmail,我的gmail 密码忘了,所以从csdn上下载了一份,地址: https://download.csdn.net/download/qq_27742163/88533548?utm_mediumdistribute.pc_relevant_download.none…...
【Cadence32】PCB多层板电源、地平面层创建心得➕CM约束管理器Analyze分析显示设置➕“DP”报错DRC
【转载】Cadence Design Entry HDL 使用教程 【Cadence01】Cadence PCB Edit相对延迟与绝对延迟的显示问题 【Cadence02】Allegro引脚焊盘Pin设置为透明 【Cadence03】cadence不小心删掉钢网层怎么办? 【Cadence04】一般情况下Allegro PCB设计时的约束规则设置&a…...
基于SpringBoot+Vue的新闻管理系统
系统展示 用户前台界面 管理员后台界面 系统背景 随着互联网技术的飞速发展,信息传播速度不断加快,新闻媒体行业面临着巨大的机遇与挑战。传统的新闻媒体正在逐渐向数字化转型,而新闻管理系统作为数字化新闻媒体的核心组成部分,其…...
图的割点、割边(Tarjan算法)
深度优先搜索的利用。 在一个无向连通图中,如果删掉某个顶点后,图不再连通(即任意两点之间不能互相到达),我们称这样的顶点为割点。 在一个无向连通图中,如果删掉某条边后,图不在连通࿰…...
算法学习(十四)—— 二叉树的深度搜索(DFS)
目录 关于dfs 部分OJ题详解 2331. 计算布尔二叉树的值 129. 求根节点到叶节点数字之和 814. 二叉树剪枝 98. 验证二叉搜索树 230. 二叉搜索树中第K小的元素 257. 二叉树的所有路径 关于dfs 算法学习(十二)—— 递归,搜索,…...
【vue2】封装自定义的日历组件(三)之基础添加月份的加减定位到最新月份的第一天
我们在切换月份的时候,希望高亮显示在每个月的第一天上面,这样的效果我们要怎么来实现,其实也很简单,我们先看下实现的效果 实现效果 代码实现 原理就是获取到每月的第一天日期,然后再跟整个的数据进行对比ÿ…...
LabVIEW偏心圆筒流变仪测控系统
偏心圆筒流变仪是一种专门研究聚合物熔体在复杂流场中特殊流变行为的先进设备。通过结合硬件控制与LabVIEW软件开发,本系统实现了对流变仪功能的精准控制与数据采集,进一步提高了聚合物加工过程的研究精度和效率。 项目背景 传统的流变测量设备多集中于…...
Runloop
假设你的项目中有关tableView,然后还有一个定时器timer在执行,定时器代码如下: var num 0override func viewDidLoad() {super.viewDidLoad()let timer Timer(timeInterval: 1,target: self,selector: #selector(self.run),userInfo: nil,r…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
论文解读:交大港大上海AI Lab开源论文 | 宇树机器人多姿态起立控制强化学习框架(二)
HoST框架核心实现方法详解 - 论文深度解读(第二部分) 《Learning Humanoid Standing-up Control across Diverse Postures》 系列文章: 论文深度解读 + 算法与代码分析(二) 作者机构: 上海AI Lab, 上海交通大学, 香港大学, 浙江大学, 香港中文大学 论文主题: 人形机器人…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...
深入理解JavaScript设计模式之单例模式
目录 什么是单例模式为什么需要单例模式常见应用场景包括 单例模式实现透明单例模式实现不透明单例模式用代理实现单例模式javaScript中的单例模式使用命名空间使用闭包封装私有变量 惰性单例通用的惰性单例 结语 什么是单例模式 单例模式(Singleton Pattern&#…...
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
TRS收益互换:跨境资本流动的金融创新工具与系统化解决方案
一、TRS收益互换的本质与业务逻辑 (一)概念解析 TRS(Total Return Swap)收益互换是一种金融衍生工具,指交易双方约定在未来一定期限内,基于特定资产或指数的表现进行现金流交换的协议。其核心特征包括&am…...
DBAPI如何优雅的获取单条数据
API如何优雅的获取单条数据 案例一 对于查询类API,查询的是单条数据,比如根据主键ID查询用户信息,sql如下: select id, name, age from user where id #{id}API默认返回的数据格式是多条的,如下: {&qu…...
