系统存储架构升级分享

这篇具有很好参考价值的文章主要介绍了系统存储架构升级分享。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、业务背景

系统业务功能:系统内部进行数据处理及整合, 对外部系统提供结果数据的初始化(写)及查询数据结果服务。

系统网络架构:

 

 

 
  • 部署架构对切量上线的影响 - 内部管理系统上线对其他系统的读业务无影响
  • 分布式缓存可进行单独扩容, 与存储及查询功能升级无关
  • 通过缓存层的隔离, 系统扩展期间外部系统可保持不变, 只对内部管理系统升级
  • 内部系统上线/验证时, 除了业务场景1相关的初始化操作, 仍可提供读服务,降低上线影响

 

二、本次升级整体实施方案:

 

整体实施方案图例:

 

 

 

(一)、设立目标

商品全量渠道化-切量计划: (总量为当前10倍):

 

 

目前:

当前数据库常用表均已超过5000W, 其中部分结果表达6000W, 已达到MYSQL数据库表容量峰值, 对于全切量无法支持;

 

目标:

最高支持9亿: 根据切量计划, 全切量后系统约为6.7亿, 保留1/4的冗余, 取8.375亿; 向上取整9亿, 此值冗余量较大, 可满足未来5年数据支持

时间目标: 8月初方案设定, 8月17~8.22上线及验证, 8.24切量计划开始

(二)、当前系统现状

1、资源使用

•当前部署结构

——机房分布,Mysql: 1主4从(机房A 1主, 3从; 机房B只读从)

——机房分布,Doris: 32C, 63个节点, 3副本

•当前应用容器(docker)数量,db最大连接数

——应用容器数量: 62 (Web分组: 25, Worker分组: 31, MQ分组: 6)

——db最大连接数100 (每个容器配置)

•当前业务是否读写分离,读写比例情况

——无读写分离

•各业务场景下,是否可容忍主从延迟?可容忍的延迟时长是多少

——目前业务人员修改操作多数为同步操作, 修改完成后返回操作结果到前端, 从业务方操作+查询结果来说, 无法空忍延迟

——后台任务场景, 对于中间数据处理, 可以容忍主从延迟

•产品层面,系统出现瓶颈压力时,是否接受限流?是否接受数据延迟展示?

——对外服务接口本次不涉及开发, 服务接口不受影响;业务页面访问量少,可接受短时间内的延迟

•团队是否有ES使用经验

——部分了解, 未在项目中使用

 

2、数据库内部使用情况

表内空间, 业务场景等信息 (部分)

表名 当前表记录数 (单位:万) 最大支持条数 (单位:万) 表字段数 是否可拆分出分片键 分片键字段 是否存在不带分片字段的SQL 是否有跨表查询场景 数据记录读写比 是否存在写后立即查询 使用场景 数据是否 可截转 可接受的截转时长 切量后预估量 分布式DB ES 判断条件:是否有复杂查询 ES直接双写 判断条件: 写后立即查询
审批流表 3.5KW 4KW 43 sku 存在 存在 1000/1 存在写后用户手动再查询操作 1、页面创建审批流 2、页面查询审批流 3、页面数据置失效 4、审批平台回调修改   +3亿 UI修改后需重新点击"查询"按钮;
审批流细目表 (历史数据已清理) 800W 4KW 20 增加sku 存在 1000/1 存在写后用户手动再查询操作 1、刷新审批流(删除+增加) 2、查询审核中流程(任务) 审批通过可转冷备   转冷备  
业务数据表1 3.3KW 4KW 15 sku 100/1   1、审批流通过后, 创建 2、数据失效, 删除操作 3、后台工具: 同步缓存(存在复杂+分页查询)   +3亿
业务数据表2 5.9KW 4KW 16 sku 存在 (新增后异常按id删除) 1000/1   1、业务查询/导出维度1数据 2、业务查询维度2数据2 3、后台工具: 同步缓存   +5亿 同步大数据推送数据到缓存, 使用creator字段查询; 多个SKU分页查询
支持数据表(大数据平台计算后推送) 1.2KW 4KW 12 item_sku_id 5/1   1、运维工具: 增加/删除记录 2、清理历史数据(任务) 3、数据查询(显示使用) 4、计算 5、大数据推送数据 按日期推送, 目前保留3天 历史数据无用 doris? 一天3~4KW 删除数据dt
.....                                

 

 

(三)、技术方案选型

1、存储选型:

 

复杂查询(原因: 前端业务访问存在多表关联场景(2张千万级别表关联查询), 随着表容量变大, 关联查询性能下降, 已无法满足业务高效需求)

复杂查询决策因素:

    分布式DB(mysql) es doris TiDB
决策指标 产品定位 数据库 (OLTP) 搜索引擎 数据库 (OLAP) 数据库(OLTP+80%OLAP)
优势 1、高并发、高吞吐量事务处理 2、稳定性 3、数据实时(写后即读) 1、全文索引 2、复杂结构化查询 高并发查询分析 1、兼具事务处理+数据分析 2、自动拓展 3、数据实时(写后即读)
劣势 1、大量数据分析 2、手动拓展 1、事务处理 2、实时(写后即读) 1、事务处理 2、实时(写后即读) 高并发、高吞吐量事务处理
可靠性 高(多机房) 高(多机房) 低(共享集群) 低(单机房)
拓展性 库维度:平台管理 表维度:应用控制 平台管理   库维度:平台管理 表维度:应用控制
数据一致性 最终一致性 最终一致性   强一致性
运维支持 DBA 分公司运维 无专业运维团队 分公司DBA
总结 复杂业务查询慢 无法支持大数据量跨表查询、多维度复杂查询及全局排序 单表使用分片字段查询性能快 复杂业务查询性能高 部署结构为共享集群,(特别是)写性能受外部影响大 部署架构为单机房,无法满足0级系统可靠性要求
 
  架构目标        
结论 海量存储及高并发写 ✅ 大数据量存储,基于分库字段单表查询性能高, 单库事务处理

 

2、数据同步方案

A-准实时同步方案:

方案描述:使用DRC平台配置化完成分布式DB到ES的准实时数据同步 (注: DRC为公司内部通用数据同步平台, 可在多个数据源之间进行数据同步)

优势

 

B-双写强一致方案:

方案描述:双写分布式DB与ES, 保证数据一致性

优势

 

数据同步方案选择建议:

 

数据同步难点及解决方案:

问题:

•双表联合查询场景无法直接使用DRC平台同步, 需另开发相应的同步模块jar包, 嵌入DRC任务, 或放弃使用DRC, 直接使用代码同步, 都存在开发时间长问题
•ES索引空间占用多, 冗余记录条数多, , 查询结果需排重, 查询复杂

难点:流程表与流程细目节点表涉及联合查询, 两表都存在单表增删改的操作; 导致同步到ES的数据模型复杂、同步困难

 

 

解决方案:(数据库表增加冗余字段, 冗余字段专用于ES查询)

在DB的流程表增加待审人员, 已审人员字段, 字段的值使用空格分隔, 使用ES的分词功能, 同时ES可直接使用DRC工具直接同步此表数据, 减少同步的开发时间

方案成本: 增加/修改流程细目时同步修改流程表新增字段; 开发刷新历史数据工具

 

 

 

(四)、分阶段开发及上线实施步骤

1、系统业务改造-表字段增加(8月10日)

1) 业务表新增分库字段

部分业务表缺少分库字段,无法直接分片。针对业务表新增sku分片字段, 同时对现有逻辑改造增加SKU条件,以提升查询效率;

2) ES相关查询冗余字段的增加 (刷数据)

 

2、分布式DB分库数据同步+验证(8月11日)

1) 完成分布式DB分片库+ ES初始化;

2) 配置DRC完成原单库到分布式DB分片库的全量+增量数据同步;

3) 配置DRC完成分布式DB分片库到ES的全量+增量数据同步;

4) 通过检验工具,定期比对分布式DB单片、分布式DB分片及ES间的数据一致性。

 

 

3、读流量切换+验证 (8月17日)

1) 新增AOP切面, 通过DUCC配置(erp白名单, 全量读, 结果对比等维度配置),将读请求逐步切量到新应用集群

2) 待产品、业务侧完成验证后,切换全部读流量至新应用集群(注: 新应用集群使用数据库只读帐号)

 

 

4、写流量切换(8.21)

1) 2) 3) 停止原系统分组,确保原单库不再存有写流量,同时协调DBA对原库执行禁写(关闭worker, 暂停MQ消费)

4) 等待并确保原库数据均同步至目的库后,再次通过手动+自动方式校验新老两个数据库的数据一致性

5) 新系统分组切换为读写帐号, 进行部署

7) 研发及测试人员对新系统分组功能使用测试商品进行功能验证, 无问题后交由业务人员验证(切换静态运维页面)

8) 启动worker及接入MQ

 

 

5、上线后效果

上线后系统运行正常, 8.23至今已结转商品 2.6亿; 目前系统支持商品场维度数据3.16亿; 最大DB表数据已有2.84亿; ES数据4356W;

前后对比: erp:xxx; 此erp帐号数据29w 原查询9s,新查询1s;

四、总结

好的建议:

•全面、清晰的系统现状盘点:可以降低复杂度、提高质量
•清晰的上线计划:指导人员合理分工、缩短上线时间、降低上线难度

 

 

 

未解决问题:

目前分布式DB分布式事务支持比较弱, 无法保证跨分库时多条记录在一个事务中修改的正确性, 需要提交后进行读取后再验证确保数据正确保存

业务人员名下商品数据百万时, 查询时间仍然效长, 查询性能将持续优化

作者:京东零售 王凯

来源:京东云开发者社区 转载请注明来源文章来源地址https://www.toymoban.com/news/detail-776958.html

到了这里,关于系统存储架构升级分享的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 人大金仓助力中国人民银行征信中心业务系统异地容灾优化升级

    日前,人大金仓助力中国人民银行应收账款融资服务平台异地容灾项目顺利上线,保证了平台系统运行的连续性和数据安全,为充分发挥平台的融资功能,缓解中小微企业融资难提供了强有力的保障。 缓解中小微企业融资难 中国人民银行构于2013年底自主研发建设了应收账款

    2024年02月06日
    浏览(50)
  • 使用MinIO文件存储系统【完成视频断点续传】业务逻辑

    目录 视频上传 接口一:检查该视频/媒资文件是否已经上传完成 接口二:检查视频分块是否已经在minio中已经存在 接口三:上传分块文件到minio中(已经上传的分块会在接口二进行校验) 接口四:合并上传的分块文件保存文件合并后的文件信息 视频上传流程图 接口一:检查

    2024年02月16日
    浏览(43)
  • Android 1.1 背景相关与系统架构分析

    目录   1.1 背景相关与系统架构分析 分类 Android 基础入门教程 1.Android背景与当前的状况   2.Android系统特性与平台架构 系统特性: 平台架构图: 架构的简单理解: 3.本节小结:   分类 Android 基础入门教程 Android系统是由Andy Rubin创建的,后来被Google收购了;最早的版本是:An

    2024年02月10日
    浏览(40)
  • 【业务功能篇73】web系统架构演变-单体-集群-垂直化-服务化-微服务化

    1.1 单体架构 单体架构应该是我们最先接触到的架构实现了,在单体架构中使用经典的三层模型,即表现层,业务逻辑层和数据访问层。 单体架构只适合在应用初期,且访问量比较下的情况下使用,优点是性价比很高,开发速度快,成本低,但缺点也很明显,这时扩展的首先

    2024年02月11日
    浏览(49)
  • 云存储系统架构及优势

    云存储服务是云存储系统提供的数据访问服务,使用户能够在任意时间、任意地点,通过任何连网的设备连接到云存储系统中,进行方便、快速的数据存取。 和传统存储模式相比,云存储不仅具备按需自助服务、泛在的网络访问、位置无关资源池、快速伸缩能力、可被测量的

    2024年01月17日
    浏览(28)
  • 系统升级丨分享返佣,助力商企实现低成本高转化营销

    秉承助力传统经济数字化转型的长远理念 酷雷曼VR再次在VR全景营销中发力 创新研发 “分享返佣” 功能 进一步拓宽商企VR全景营销渠道 助力商企搭建 低成本、高传播、高转化 的VR营销体系 01、什么是“分享返佣”? ●“分享返佣”即 “推广”返佣 ,是酷雷曼VR专为商企开

    2024年02月16日
    浏览(38)
  • 二代水务系统架构设计分享——DDD+个性化

    C/S架构的单体桌面应用,可以满足客户个性化需求,易于升级和维护。相比于一代Winform,界面要求美观,控件丰富可定制。 依托.Net6开发平台,采用模块化思想设计(即分而治之的策略),每个模块采用DDD分层设计。前端选用WPF + Prism框架,后端选用ABP + EF框架,数据库选择SQ

    2024年02月14日
    浏览(41)
  • 猫头虎分享: 探索软件系统架构的革新之路

    博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接 : 🔗 精选专栏 : 《面试题大全》 — 面试准备的宝典! 《IDEA开发秘籍》 — 提升你的IDEA技能! 《100天精通鸿蒙》 — 从Web/安卓到鸿蒙大师! 《100天精通Golang(基础入门篇)》 — 踏入

    2024年02月22日
    浏览(77)
  • 架构设计内容分享(二百一十):设计一个大并发、大数据的系统架构,说说设计思路

    目录 大并发/大数据的软件有如下特点 大并发/大数据的架构目标有如下几个 大并发/大数据的设计思路与原则 大并发/大数据的分层架构 1 接入层的架构方案: 第二三层:应用层/服务层架构方案 第四层:数据层架构方案 第五层:基础设施层架构 高并发核武器:单元化+异地

    2024年02月21日
    浏览(48)
  • 深入浅出 -- 系统架构之分布式多形态的存储型集群

    在上阶段,我们简单聊了下集群的基本知识,以及快速过了一下逻辑处理型集群的内容,下面重点来看看存储型集群,毕竟这块才是重头戏,集群的形态在其中有着多种多样的变化。 逻辑处理型的应用,部署集群架构是为了解决单点故障、获得更高的吞吐量,集群内各节点之

    2024年04月10日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包