当前位置: 首页 > news >正文

朗新科技集团如何用云消息队列 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会有帮助, 事实上也很简单,一个是桌面版本,另一个是字符界面版本。 桌面版:拥有图形桌面 字符界面,易上手&#xff…...

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)一起使用。 用法: 打包文件&#xff0…...

目标跟踪算法: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算法)

深度优先搜索的利用。 在一个无向连通图中,如果删掉某个顶点后,图不再连通(即任意两点之间不能互相到达),我们称这样的顶点为割点。 在一个无向连通图中,如果删掉某条边后,图不在连通&#xff0…...

算法学习(十四)—— 二叉树的深度搜索(DFS)

目录 关于dfs 部分OJ题详解 2331. 计算布尔二叉树的值 129. 求根节点到叶节点数字之和 814. 二叉树剪枝 98. 验证二叉搜索树 230. 二叉搜索树中第K小的元素 257. 二叉树的所有路径 关于dfs 算法学习(十二)—— 递归,搜索&#xff0c…...

【vue2】封装自定义的日历组件(三)之基础添加月份的加减定位到最新月份的第一天

我们在切换月份的时候,希望高亮显示在每个月的第一天上面,这样的效果我们要怎么来实现,其实也很简单,我们先看下实现的效果 实现效果 代码实现 原理就是获取到每月的第一天日期,然后再跟整个的数据进行对比&#xff…...

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…...

脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)

一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

day52 ResNet18 CBAM

在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风,以**「云启出海,智联未来|打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办,现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils: ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类,封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz,先构建任务的 JobD…...

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…...

数据库分批入库

今天在工作中,遇到一个问题,就是分批查询的时候,由于批次过大导致出现了一些问题,一下是问题描述和解决方案: 示例: // 假设已有数据列表 dataList 和 PreparedStatement pstmt int batchSize 1000; // …...

从“安全密码”到测试体系:Gitee Test 赋能关键领域软件质量保障

关键领域软件测试的"安全密码":Gitee Test如何破解行业痛点 在数字化浪潮席卷全球的今天,软件系统已成为国家关键领域的"神经中枢"。从国防军工到能源电力,从金融交易到交通管控,这些关乎国计民生的关键领域…...

永磁同步电机无速度算法--基于卡尔曼滤波器的滑模观测器

一、原理介绍 传统滑模观测器采用如下结构: 传统SMO中LPF会带来相位延迟和幅值衰减,并且需要额外的相位补偿。 采用扩展卡尔曼滤波器代替常用低通滤波器(LPF),可以去除高次谐波,并且不用相位补偿就可以获得一个误差较小的转子位…...

Linux中《基础IO》详细介绍

目录 理解"文件"狭义理解广义理解文件操作的归类认知系统角度文件类别 回顾C文件接口打开文件写文件读文件稍作修改,实现简单cat命令 输出信息到显示器,你有哪些方法stdin & stdout & stderr打开文件的方式 系统⽂件I/O⼀种传递标志位…...