MatrixOne 助力某电信运营商构建低成本高性能车联网管理系统

news2024/9/23 20:16:19

客户基本情况

该电信运营商在物联网领域深耕多年,致力于为企业和个人提供全面的物联网解决方案,包括智能连接、设备管理、数据采集与分析等核心服务。凭借其强大的网络覆盖和技术优势,该运营商为各行业提供高效、安全、可靠的物联网服务,助力实现数字化转型和智能化运营。其以物联网连接为基础,卡位芯片、操作系统、模组、硬件四类入口,打造物联网卡管理平台、连接管理平台、5G专网平台等三大平台,发展视频物联网、城市物联网、产业物联网三大业务领域。

面临的业务挑战

本次与MatrixOne合作的项目主要面向于车联网相关的业务。在车联网业务中,该运营商主要为车企提供流量卡实名认证,连接管理等服务。其核心系统由三个核心部分组成:车联网实名登记平台、5G 智能网联管理平台和车企实名登记业务平台,这三个平台分别采用一套 MySQL 8.0 数据库,目前总数据量达 2TB+。同时每年新增数据量达数百GB,该系统已支持数十家车企客户,未来预期增加至百余家。

随着车联网业务的快速发展,该运营商的数据库架构面临着一系列挑战。

  1. 扩展性问题:高并发请求的增加导致 MySQL 数据库出现性能瓶颈,用户只能手动通过分表形式来分散压力,运维成本较高,读写操作都较为复杂。
  2. 查询性能问题:面对多表关联操作,MySQL的查询性能会慢到几分钟甚至十几分钟。用户不得不对数据结构进行精细的修改,以避免进行三表以上的join操作,同时把大量的计算压力由业务应用来完成,这样会经常导致应用层的性能受到影响。
  3. 资源利用率问题:系统整体硬件使用率不高。由于业务初期规划是以较大的商业规模来估算的,因此实际上每套系统底层的MySQL主备集群都配备了非常高规格的物理机,最大使用到80504G内存。但是实际上因为业务发展还处于早期,以及车企仅会在批量进行开通操作的时候才会有一定业务洪峰,而绝大部分情况下硬件使用率较低。在整体大环境降本增效的背景下,业务部门的IT成本压力较大。

在这样的背景下,该业务的IT人员曾经尝试过将MySQL接入为应用系统准备的K8s云原生容器集群,来尝试解决资源利用率及扩展性的问题。但是实际测试发现直接将原生MySQL上容器,不仅没有达到线性扩展的效果,反而相比过去用物理机的形态性能大幅下降,最后只能放弃该方案。

解决方案

为了解决当前车联网数据架构中的关键挑战,同时避免对现有业务逻辑进行大规模改造,基于MatrixOne的云原生HTAP解决方案应运而生。

  1. 弹性扩展:MatrixOne作为一款完全面向容器而设计的云原生数据库,天然支持了K8s容器环境部署。同时MatrixOne是完全存算分离的数据库,CN计算节点及TN事务管理节点均运行在基于K8s管理的容器上,这两种节点均无状态,可以随时启停或者扩展。存储层运行在对象存储上,天然具备很强的扩展性。需要有状态保证的写入日志节点通过三副本的Raft协议来保证可靠性。因此其天然可以利用容器平台超强的扩展能力,来实现扩展性。在业务负载上升的时候,仅需1条运维命令即可秒级无感知的增加CN计算节点来匹配更高的业务并发量。

  1. 容器池化:MatrixOne基于容器的池化能力,可以按需调用底层计算资源,在业务发展初期,整体负载压力较小的时候,MatrixOne可以使用较小和较少的计算容器节点。而在业务负载逐渐加大的时候,MatrixOne仅需一条简单的运维命令即可秒级对现有计算容器节点进行垂直扩展或者水平扩展,这也实际使用的底层资源始终可以匹配业务需要的资源,可以极大的提高硬件使用率。
  2. 多租户:MatrixOne支持多租户能力,在一套MatrixOne集群内,允许用户用不同的租户登陆,将完全看见不一样的数据空间,同时可以将1个或多个CN计算节点绑定到不同的租户上,确保计算负载的隔离性。因此用户三套业务应用底层的所有数据库硬件均可以被池化,而上层每套业务应用数据库可以作为一个MatrixOne集群中的租户存在,共享一套MatrixOne集群。这种使用模式将进一步提高硬件整体使用率。

  1. HTAP能力:MatrixOne是一款HTAP数据库,针对多表关联,聚合分析类的OLAP查询比MySQL能力强的多,过去需要花十几分钟在MySQL进行查询的语句在MatrixOne中仅需要秒级即可输出结果,这将极大的降低被迫被推到业务应用层去执行的数据计算负担。
  2. MySQL兼容:MatrixOne与MySQL8.0高度兼容,对于开发人员来说,所使用的Java工具包,包括ORM框架Hibernete,连接池Druid,建模开发管理工具DBeaver,MatrixOne均可以无缝兼容,用户只需要保持与MySQL一样的开发习惯即可,极大的降低了迁移适配应用的成本。

实施过程

客户在详细了解MatrixOne的整体技术细节之后,明确了要进行数据库云原生化改造的方案,项目开始进入到POC实施阶段。

首先进行了基于K8s及对象存储部署的测试,MatrixOne整体使用了76 vCPU,304G的内存资源,及4TB的对象存储资源,即完成了面向三套业务系统的整体部署,比过去1主1备的MySQL物理机资源整体少了近80%。

其次进行了业务应用适配性的测试,业务侧准备了43个应用接口进行测试,42个接口测试一次性通过,其中1个应用接口因为碰到了MySQL在整型和字符串数据类型转换方面不正规的使用方式而出现差异,在我们的建议下客户修正了自己的代码,并通过了第43个接口的测试。

第三,我们对相对性能要求较高的部分业务接口进行了性能测试。客户要求在100并发下,应用侧端到端的接口时延在10秒以内。MatrixOne将平均性能水平控制在了3秒以内,比MySQL快了近20倍。而且针对部分要求更高的查询,MatrixOne通过快速拉起新的计算节点进行瞬时的并行计算,可以进一步提高查询性能。

最后,为了确保MatrixOne在数据同步和迁移方面的能力,用户分别测试基于DataX及FlinkCDC的离线及实时方案。MatrixOne均可以保持与MySQL表的数据一致性及秒级同步。

客户收益

通过采用MatrixOne的云原生HTAP解决方案,该电信运营商在车联网管理系统方面获得了显著的效益:

  1. 性能提升:MatrixOne的OLAP高性能查询性能显著提升了系统的响应速度,尤其是在处理复杂查询时,相比原有MySQL数据库,查询效率提升了数十倍,从而改善了应用开发模式及用户体验。
  2. 成本优化:通过MatrixOne的容器化部署和资源池化管理,该运营商能够根据实际业务需求动态调整资源分配,避免了资源浪费,实现了成本的有效控制。
  3. 运维简化:完全K8s容器化管理极大的简化了运维工作,使得数据库的扩展和管理更加自动化和便捷,降低了运维难度和工作量。同时使得数据库及应用的运维可以形成统一一套运维体系。

通过这些改进,该电信运营商不仅提升了车联网管理系统的性能和稳定性,还实现了成本的有效控制和业务的快速响应,为未来的发展奠定了坚实的基础。

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

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

相关文章

风速传感器一文浅谈 了解自然的力量

产品概述 本产品主要采用优质聚合物碳纤维为原材料,具有良好的防腐、防侵蚀等特点,能够保证仪器长期使用不起锈,同时配合内部顺滑的轴承系统,确保了信息采集的准确性。外型小巧轻便,便于携带和组装,三杯设…

MCU和YT9218交换机通过RMII连接

1、可以通过带RMII的MCU和EXT1端口连接,将MCU配置为RMII 100M/全双工就可以通 2、原先在这里改SW配置, 一直不通 3、后来通过api调用可以通 这样改: 在初始化后,添加下面代码 //使能RMII,phy模式 #define Port5 …

【LeetCode】动态规划—使用最小花费爬楼梯(附完整Python/C++代码)

动态规划—#746. 使用最小花费爬楼梯 前言题目描述基本思路1. 问题定义:2. 理解问题和递推关系:3. 解决方法:4. 进一步优化:5. 小总结: 代码实现Python3代码实现Python 代码解释C代码实现C 代码解释 总结: 前言 在这个问题中,我们有一个数组 c o s t [ ] cost[] c…

单细胞SCENIC简单可视化分析学习和整理

SCENIC教程中给出三个方法进行下游的可视化分析,分别可以选择网页(SCope)平台,R或者python进行分析。 1、网页版:https://scope.aertslab.org/ 把数据从左侧工具栏处上传之后就可以个性化分析了~ 2、R和Python就殊途同归啦~ 笔者基于githu…

linux/CentOS 开机启动程序

前言 TencentOS Server 3.1 (TK4)适用于自己编写启动脚本的情况 编写启动脚本 比如启动tomcat,kaijiqidong_tomcat.sh #!/bin/bashecho "kaijiqidong_tomcat on date ." >> kaijiqidong_tomcat.log 2>&1cd /x/xx/xxx sh /x/tomcat/bin/s…

老照片修复软件有哪些?6个工具轻松搞定

在回忆的长廊中,老照片承载着岁月的痕迹和珍贵的记忆。 然而,时间的流逝往往让这些宝贵的瞬间变得模糊不清。幸运的是,现代科技赋予了我们修复这些老照片的能力。 面对市场上众多的老照片自动修复软件,选择一个合适的工具变得尤…

Apache APISIX学习(1):介绍、docker启动

一、介绍 Apache APISIX 是一个动态、实时、高性能的 API 网关, 提供负载均衡、动态上游、灰度发布、服务熔断、身份认证、可观测性等丰富的流量管理功能。你可以把 Apache APISIX 当做流量入口,来处理所有的业务数据,包括动态路由、动态上游…

得物自建 Redis 无人值守资源均衡调度设计与实现

目录: 一、为什么要做资源均衡调度 二、为什么要做自动化资源均衡调度 三、如何合理选择迁移节点 四、如何保障迁移过程中可靠性1. 添加从节点2. 检查同步数据正常3. 执行主从切换4. 检查主从切换正常5. 删除待迁移节点6. 消息通知 五、迁移任务管理展示 六、总结 …

户用光伏项目难管理,到底该怎么办?

一、鹧鸪云光伏业务管理软件:一站式管理利器 鹧鸪云光伏业务管理软件,作为一款专为光伏行业量身定制的智能化管理工具,集成了项目管理、运维管理、数据分析、用户服务等多功能模块于一体,旨在通过数字化手段,实现户用…

Nature Genetics|三代测序微量建库技术:媲美WGBS的直接甲基化检测

DNA修饰和甲基化是理解基因调控机制的关键。以往,我们的经验表明,使用三代测序从未经扩增的长DNA模板中同时读取序列信息和碱基修饰,需要投入大量的DNA样本来构建文库。 今天,小编带大家看一篇2024年发表于《Nature Genetics》的…

【MAUI】FlexLayout

文章目录 概述属性方向和对齐方式DirectionWrapJustifyContentAlignItemsAlignContent 圣杯布局来源 概述 FlexLayout弹性布局,和前端的Flex弹性布局,几乎一样。FlexLayout是容器,可以定义Direction/主轴方向、Wrap/子元素在主轴方向上是否换…

Vue使用Vue Router路由:开发单页应用

1、路由基础 在单页 Web 应用中,整个项目只有一个 HTML 文件,不同视图(组件的模块)的内容都是在同一个页面中渲染的。当用户切换页面时,页面之前的跳转都是在浏览器端完成的,这时就需要使用前端路由。 路…

蒙古语有方言差异吗?

蒙古语存在方言差异,主要分为西部方言和东部方言两大类。西部方言,即蒙古方言或喀尔喀方言,主要在蒙古国使用,是该国的官方语言。东部方言,又称布里亚特方言或巴尔虎-布里亚特方言,主要在中国内蒙古自治区和…

deepin桌面版连接windows远程桌面

在Linux系统中,要登录到Windows系统,通常可以使用远程桌面协议(RDP)。你需要在Linux系统上安装RDP客户端。 使用如下命令安装rdp协议: sudo apt-get install xrdp 安装成功后,启动rdp服务。 sudo systemctl start xrdp 有了r…

vscode缩进 和自动格式化

如下图,缩进太大了。 检查2个地方 prettierrc.cjs文件。此处决定缩进几个tab vscode 的设置。 保存的时候 格式化。

Apache Druid命令执行(CVE-2021-25646)

漏洞详情: Apache Druid 是用Java编写的面向列的开源分布式数据存储系统,旨在快速获取大量事件数据,并在数据之上提供低延迟查询。 Apache Druid含有能够执行嵌入在各种类型请求中由用户提供的JavaScript代码功能。此功能适用于高度信任环境…

Java_Day04学习

类继承实例 package com.dx.test03; public class extendsTest {public static void main(String args[]) {// 实例化一个Cat对象,设置属性name和age,调用voice()和eat()方法,再打印出名字和年龄信息/********* begin *********/Cat cat ne…

李飞飞创业公司World Labs:引领AI新方向的“大世界模型”

引言 随着人工智能的不断进步,AI领域涌现了许多新兴技术和研究方向。在这其中,李飞飞创办的World Labs凭借其独特的“空间智能”和“大世界模型”(Large World Model, LWM)理念,迅速成为焦点。尤其是在获得了2.3亿美元…

python 斑马打印模板

打印代码逻辑如下; 包括样式、表格 import win32printdef print_zpl_from_usb_printer(printer_name, zpl_content):# 打开打印机hPrinter win32print.OpenPrinter(printer_name)if hPrinter is None:print(f"Failed to open printer: {printer_name}")…

淘宝商品评论数据获取API接口响应参数列表展示(可测key)

item_review-获得淘宝商品评论 在电商领域,商品评论数据是商家和消费者都极为关注的重要信息。通过这些数据,商家可以了解产品的市场反馈,优化产品和服务;而消费者则可以参考其他用户的评价,做出更明智的购买决策。然…