某传统企业去O上云案例

简介:

最近参与到某新能源制造企业去O上云的项目,网站的需求很简单:以WEB/APP 的形式提供数据查询展示、分析的功能。
网站使用java编写,数据库采用Oracle DataGuard 搭建的高可用架构。DG环境是找第三方公司来搭建的,过了维保期之后主库出了问题,客户根据维保手册自行将备库提升为主库,但DG环境却搭不起来。找数据库运维公司来搭建,要10WRMB(狠!),也就咬牙不搭建DG环境了。相当于数据库一直处于果奔状态。
数据库主要存储站点、设备状态、设备运行日志、发电量、二氧化碳减排量等数据。数据表不多,但单表数据量特别大。WEB站点大都以图表的形式展示日、月、年发电量、二氧化碳减排量、Input、Output数据。很遗憾,所有的统计数据都是在用户访问页面时实时计算得来的。
image

随着新能源产业的兴起,公司销售的设备也越来越多,收集到的数据量也越来越大,单表最高达2亿,多张表数据量相当可观。同时也因为页面响应越来越慢的原因,收到更多的用户投诉。
而此时用户已经感受到来自WEB架构、数据表扩展等的压力,通过一番咨询后,找到我们来优化架构,解决数据量越来越大,WEB访问越来越慢、便于开发维护的问题。
在对公司业务、WEB/APP的业务类型、数据量变化趋势及客户想要达到的数据入库速度、页面响应时间详细了解之后,开始架构优化和数据库改造计划。

大家都知道Oracle相较于其他开源或者非开源的数据库都有很大的优势,表现在OLTP、OLAP等事务操作,以及对过程、触发器、函数等的强烈支持。但在大数据表的处理及扩展方面的能力也一直被大家诟病。另外一面就是对非专业数据库管理人员来说,维护起来有很大的挑战,并且第三方的运维服务公司大都很贵!
出于易运维、可扩展的需求,推荐使用阿里云分库分表中间价DRDS+RDS数据库架构;并对当前实时数据统计的业务场景做了优化。
DRDS:https://help.aliyun.com/document_detail/29659.html?spm=5176.doc52009.6.539.xf7Rpp
RDS:https://help.aliyun.com/knowledge_detail/41872.html
解决的问题:
DRDS单实例可以和N个RDS实例组成分库分表集群,每个RDS会创建8个数据库,每个数据库可以根据拆分规则创建M个分表,最终一张大表的数据会均匀(理论上)的分布在NM8个数据表上,单表数据量直线下降。
阿里云提供DRDS、RDS管理控制台,实例CPU、内存、慢日志等等都可以直观的在页面展示,快速定位解决问题,节省人工运维的成本。
针对实时计算的业务类型,做了大量的代码层和数据库层改造。基本思想是将该类型的业务放到后台,以定时任务的方式去计算,不同需求的结果存储在不同的月、年统计表中,真正做到页面与数据库的交互只有简单的DML操作,减少响应时间提升客户体验。
image


多轮性能测试下来,在100并发下,单个页面最快响应时间可达到500ms以下,多个页面的性能测试响应时间也在2S以下。

去O改造的指导思想是:
梳理和拆分业务,将需要计算的事情交给后台JOB去做,页面对数据库的请求只有一次交互、且只是一次对表的查询操作,避免多次交互和大量的计算操作,提升性能。

目录
相关文章
|
数据中心 Anolis
性能优化特性之:LSE指令集编译优化
本文介绍了倚天实例上的编译优化特性:LSE,并从优化原理、使用方法进行了详细阐述。
|
10月前
|
存储 人工智能 API
AI Agent 职业路线:从转型焦虑到体系化落地的 12 个月实战指南
本文剖析AI Agent职业发展的范式转移:从Prompt工程师升级为系统构建者,聚焦边缘优化、企业数字员工、AI对齐三大实战方向,并提供12个月体系化转型路径,强调以业务赋能为核心,打造不可替代的“技术+业务”复合竞争力。(239字)
746 1
|
10月前
|
安全 应用服务中间件 Apache
2026年阿里云服务器搭建Drupal系统网站指南:新手友好部署与配置流程
Drupal作为功能强大的开源内容管理系统,凭借灵活的扩展性、丰富的模块生态和安全稳定的特性,广泛应用于企业官网、电商平台、社区论坛等场景。对于新手而言,在阿里云服务器上搭建Drupal无需复杂的技术储备,核心围绕“环境部署、系统安装、基础配置”三大环节展开。2026年阿里云服务器提供了轻量应用服务器和ECS两种部署载体,本文将详细拆解适合新手的完整流程,涵盖环境准备、Drupal安装、安全加固、功能优化等关键步骤,确保不改变原意且无营销表述,帮助新手顺利搭建可用的Drupal网站。
862 0
|
10月前
|
数据采集 前端开发 测试技术
Python网页自动化操作全攻略:从入门到实战
网页自动化可高效替代重复性浏览器操作,广泛应用于数据采集、测试、社交媒体管理等场景。本文详解Selenium、Requests+BeautifulSoup、Playwright三大工具的选型与实战技巧,涵盖元素定位、等待机制、反爬应对、多窗口处理及CI/CD集成,助你构建稳定高效的自动化流程。(238字)
906 0
|
Web App开发 JavaScript 前端开发
Node.js | 从前端到全栈的必经之路
深入浅出Node.js,最适合前端开发人员进入全栈时学习的服务端语言,以JavaScript为基础,使前端人员能够平滑过渡到全栈,赶快来认识一下Node.js吧!
1179 11
Node.js | 从前端到全栈的必经之路
|
Linux 数据库
Red Hat Enterprise Linux(RHEL)
Red Hat(红帽)是一家美国的软件公司,专注于开发开源软件产品。公司成立于1993年,总部位于美国北卡罗来纳州的罗利市。目前,Red Hat已成为全球最大的开源解决方案提供商和商业Linux主要供应商。 Red Hat由Bob Young和Marc Ewing共同创立。Marc Ewing最初创建了自己的Linux发行版,并将其命名为红帽Linux。1995年,Bob Young收购了Marc Ewing的企业,两者合并成为红帽软件公司。此后,红帽Linux逐渐发展成为一款备受欢迎的Linux发行版。 特点
786 10
Red Hat Enterprise Linux(RHEL)
|
IDE 安全 Android开发
深入探索Android与iOS操作系统的架构差异
本文旨在对比分析Android和iOS两大主流移动操作系统在架构设计上的根本差异。通过详细解读两者的系统架构、开发环境、以及安全性等方面,揭示它们各自的特点及优势,为开发者选择合适的平台提供参考。
|
Java 编译器 关系型数据库
深入理解 Java 中的 final 关键字
final 是 Java 中重要关键字之一,可以应用于类、方法以及变量上。这篇文章中将讲解什么是 final 关键字?将变量、方法和类声明为 final 代表了什么?使用 final 的好处是什么? final 关键字是什么? final 在 Java 中是一个保留的关键字,可以声明成员变量、方法、类以及本地变量。
5259 0
|
机器学习/深度学习 数据可视化 算法
激活函数与神经网络------带你迅速了解sigmoid,tanh,ReLU等激活函数!!!
激活函数与神经网络------带你迅速了解sigmoid,tanh,ReLU等激活函数!!!
1068 0
|
存储 Linux 网络安全
常用的 Python 工具:使用 virtualenv、使用 Pip 进行安装和管理包
常用的 Python 工具:使用 virtualenv、使用 Pip 进行安装和管理包
467 0