当前位置: 首页 > 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…...

Spring Boot 实现流式响应(兼容 2.7.x)

在实际开发中,我们可能会遇到一些流式数据处理的场景,比如接收来自上游接口的 Server-Sent Events(SSE) 或 流式 JSON 内容,并将其原样中转给前端页面或客户端。这种情况下,传统的 RestTemplate 缓存机制会…...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中,手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力,既支持点击、长按、拖拽等基础单一手势的精细控制,也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异,它们的数据同步要求既要保持数据的准确性和一致性,又要处理好性能问题。以下是一些主要的技术要点: 数据结构差异 数据类型差异&#xff…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI

前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述:指针 vs. 引用(类比其他语言)一、指针基础概念二、指针声明与初始化三、指针操作符1. &:取地址(拿到内存地址)2. *:解引用(拿到值) 四、空指针&am…...

基于PHP的连锁酒店管理系统

有需要请加文章底部Q哦 可远程调试 基于PHP的连锁酒店管理系统 一 介绍 连锁酒店管理系统基于原生PHP开发,数据库mysql,前端bootstrap。系统角色分为用户和管理员。 技术栈 phpmysqlbootstrapphpstudyvscode 二 功能 用户 1 注册/登录/注销 2 个人中…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...