谈模块独立拆分上线一些经验

简介: 上线时间:20151214    就在2015年12月14日,我们财务研发部的财务独立系统(简称财务系统)上线了,总的来说是很成功的,但是里面有一些细节,还是值得总结的,有出现的问题,也有一些实施的方案,下面我说来总结几点。

上线时间:20151214


    就在20151214日,我们财务研发部的财务独立系统(简称财务系统)上线了,总的来说是很成功的,但是里面有一些细节,还是值得总结的,有出现的问题,也有一些实施的方案,下面我说来总结几点。

一、出现的问题,也就是最大的失误,就是线上环境数据库和本地环境数据库不同,当时本地测试使用的是订单主数据库,而线上考虑到不能影响订单数据库性能,只能让我们使用从库,我画个丑点的图表示一下。

正常的操作流程图:



出问题的情况图:

 


这种情况,造成的问题是什么?本地测试时,没有问题,线上运行时,有问题,而且,如果不仔细想,想破脑袋也想不出问题出在哪,这种问题也是最难找的。

我要表达的意思就是,很多情况测试没问题,程序没问题,运行时有BUG,找问题侧重于思考运行环境等方面的问题,是环境不一样,或者是系统压力不一样等等引发的问题。


二、系统拆分方案,也是当初着手做这项工作时,非常棘手的一个问题。能不能拆出来,用什么方案,像数据同步方案,订单系统和财务系统之间之前的很密切的互相调用等等,是用同步还是异步。开始考虑了消息队列,后面发现实施起来很麻烦,订单系统各个点要发半空消息,财务系统这边也要获取消息队列,数据庞大的情况下,能不能及时处理也是个问题,后来最终使用的是财务数据库使用SQL语句链接订单数据库服务器进行数据同步,这种相对来说比较轻量级,也不需要对程序进行改动,相对来说减少了很大一部分工作量。在程序是,我们对重要的一起系统间的调用,使用了事务补偿的方案,比如:系统A调用系统B,在系统B产生了一条数据,如果系统A在那个事务里失败了,但又不能操作系统B的数据库,那么,系统B的自动作业中,会检测系统A事务处理的状态为失败,就把对应系统B中产生的数据删除或做其他处理,这就是事务补偿。


三、程序上加一个开关,来快速处理回滚的问题。就是如果上线后,发现拆分出来的财务系统有问题,不能用,那么,通过一个配置开关,就能直接用回原来的未拆分时的系统。意思就是做系统拆分,不能只考虑一刀切(最理想的状况),还要考虑到如果有问题,如何快速还原到之前正确的状态,通俗点就是留条后路。


四、时刻记住自己的目标,不能乱做。比如我们拆分初期,原来的模块就不是很完善,需要还想着在拆分时完善一下系统,人力不够,时间不够,那时候真的是有点做不下去,后面,我们也确定了拆分的目的,就是把原来的功能拆下来,哪怕原来的有些部分功能是错的,也不要花太多时间去改,记录下来哪些有问题,拆出来了再去完善,不然拆分基本的任务都完不成,怎么去完善。


五、关于程序优化方面,主要是数据库保存数据比较耗时,比如要保存100条数据到数据库,那能想到的策略就是先放在内存,在最后时刻才将数据一次性保存到数据库,这样能减少与数据的连接次数,从而减少浪费时间提高程序性能。就像现在的迅雷下载、旋风下载等等都有缓存,可以设置(假设使用旋风下载:缓存设置成256M,每秒下载1M,都是保存到内存,满256M时,才一次性地保存到硬盘上,可以在任务管理器中直观地看到QQDownload.exe进程,从几十M慢慢变到2~300M,然后又变成几十M,一直循环)。





相关文章
|
19天前
|
安全
什么是短剧系统开发/需求设计/逻辑方案/项目指南
The short drama system development plan refers to the development of a system for organizing and managing the process of short drama production, release, and playback.
|
4月前
|
Cloud Native 前端开发
【性能优化上】第三方组织结构同步优化一,分状态,分步骤的设计,你 get 到了吗?
【性能优化上】第三方组织结构同步优化一,分状态,分步骤的设计,你 get 到了吗?
|
6月前
|
运维 测试技术 区块链
链动2+1模式系统开发指南流程丨成熟案例丨功能设计丨测试部署丨方案项目丨逻辑需求丨源码出售
链动2+1模式系统开发方案是指一个较为复杂的系统开发模式,其中包含两个公链和一个私链的组合。
|
8月前
|
数据采集 搜索推荐 安全
独立站Shopify优化怎么做?
答案是:足够多的GPB外链+足够多的优质内容。 Shopify优化是电商企业必不可少的一步,优化Shopify可以帮助你的在线店铺在Google搜索引擎中获取更高的排名,从而吸引更多的流量和潜在客户。 以下将介绍一些关键的Shopify优化步骤。
92 0
独立站Shopify优化怎么做?
|
9月前
|
数据采集 搜索推荐 安全
如何做独立站Shopify优化?
答案是:足够多的GPB外链+足够多的优质内容。 Shopify 是一种流行的电商平台,很多商家都选择使用 Shopify 来建立和运营他们的在线商店。 然而,要想在竞争激烈的电商市场中脱颖而出,你需要对你的 Shopify 网站进行优化。 以下是一些有用的 Shopify 优化技巧。 提升网站速度 Shopify 网站的加载速度直接影响到用户体验和搜索引擎排名。 你需要采取措施来提升你的 Shopify 网站的加载速度。
97 0
如何做独立站Shopify优化?
|
10月前
|
存储 分布式数据库 区块链
DAPP互助公排拆分项目系统开发(开发案例)/逻辑方案/功能详解/玩法逻辑
   区块链是一种特殊的分布式数据库,任何服务器都可以成为区块链中的一个节点,且节点之间是平等的,无中心化,区块链中的数据是经过加密存储,已经存储的数据无法修改,可以保证数据的准确性。
|
10月前
公排互助拆分开发运营版丨拆分互助公排系统开发(逻辑项目)/玩法规则/详细方案/代码部署
Applications that complete tasks through consensus mechanisms and blockchain platforms are inherently decentralized and do not rely on any centralized servers,promoting safer user transactions.
|
11月前
「业务架构」定义业务能力-备忘单
「业务架构」定义业务能力-备忘单
|
安全 Cloud Native 架构师
如何设计或选择合适的研发模式|学习笔记
快速学习如何设计或选择合适的研发模式
142 0
如何设计或选择合适的研发模式|学习笔记
|
安全 Cloud Native 架构师
如何设计或选择合适的研发模式 | 学习笔记
快速学习如何设计或选择合适的研发模式
99 0
如何设计或选择合适的研发模式 | 学习笔记