对一个“失败”项目的审视—分析

简介:

wKiom1P65xCh1NdAAAICcwcqfck778.jpg

洋洋洒洒写了好多字啊,我都没想到我能写这么多字来。看了上面的架构一定有人会想“不对吧,你在第一篇中可是写的是11种服务器啊,你数一数上面的架构图上才几个?老兄啊,你别是为了点击率而忽悠我们吧”。对于存有这种看法的看客,我只能说“您看的可真细致啊!”上面的这个架构图的确和我第一篇中写的11种服务器的架构不同,那是因为上面的图是目前的架构图,而11种服务器则是第一版的产品架构。大家可以来看看第一版和目前版本架构图的区别。


wKioL1P66CmDmoruAAFuyZ4zPCc404.jpg


后来将网关服务器和逻辑处理服务器合并;帐号服务器和认证服务器合并;统计服务器、公告服务器、在线服务器砍掉;计费服务器拆分成上报服务器和同步服务器。所以大家就看到了上一篇中的架构图。

 

看到上面的架构图以后不知道大家会有何感想,反正我听到领导好几次用Perfect来形容。当时自己也沾沾自喜了好久。


不过随着项目的完成,以及性能测试和压力测试的开展,却发现了一个非常大的问题—性能低下。更有甚者当网吧的一个结账业务发送到上报服务器以后,上报服务器竟然需要2-3秒钟才能处理完毕。这几乎是灾难性的,要知道每个网吧我们的评估是每天上报2000条数据,这样一来,一组服务器所能支持的网吧数量则少的可怜。同时处理速度过慢,会在业务上出现很大的漏洞。例如以连锁网吧为例,用户1在连锁网吧中的A进行消费100块钱以后,抢在连锁网吧数据同步之前(由于处理速度太慢,而造成了延迟)又在连锁网吧B中进行消费,这样以来相当于用户1进行了重复性消费。容易造成网吧账目出现大量的负帐(用户1消费完后,不再进行消费),这对目前薄利的网吧行业的打击无疑是巨大的。


究其原因,我觉得主要是因为我们在处理所有业务的时候都是采取了先从SQL SERVER数据库中查询数据,然后再进行计算,并将SQL SERVER数据库中的相关数据进行修改的方式。要知道对于一个复杂的业务,这种查询是多次的。修改的内容也会涉及到好几张不同的表。

就拿网吧用户表为例,一张表中会存放将近3000万条的数据,即便是通过分库分表的方式,虽然可以缓解,但也只能指标不能治本。


第二个问题是由于网吧数据是放在网吧服务器上,网吧每次交班时的交班金额是按照网吧本地数据计算出来的。而网吧的每一条业务都上报给中心服务器,中心服务器会重新对数据计算一次;并且当网吧服务器重启的时候,对于网吧服务器和中心服务器上不一致的数据进行强制更新。这个流程中出现了两次计算,并且在不同的业务中以不同的计算结果作为依据(网吧中的交班和中心服务器中的强制数据更新)。这样一来势必会出现数据不正确的问题(事实上,在产品刚上线不久的时候,我们的DBA都是在进行数据的修正,即将中心服务器的数据修改成网吧的数据)。


以上两个问题一直困扰着我很久,因为如果产品做成这样的话,在市场上就几乎无法进行推广的。直到后来我离开这家公司以后,才想到了使用NOSQL来实现。

本文转自狗窝博客51CTO博客,原文链接http://blog.51cto.com/fxh7622/1544726如需转载请自行联系原作者


fxh7622

相关文章
|
3月前
数据平台问题之在数据影响决策的过程中,如何实现“决策/行动”阶段
数据平台问题之在数据影响决策的过程中,如何实现“决策/行动”阶段
|
3月前
|
监控 Kubernetes 持续交付
持续部署的内涵和实施路径问题之确保持续部署的准确性和可预期性的问题如何解决
持续部署的内涵和实施路径问题之确保持续部署的准确性和可预期性的问题如何解决
|
4月前
|
人工智能 数据挖掘 UED
设计一个有效的提示工程策略需要遵循系统化的方法
设计一个有效的提示工程策略需要遵循系统化的方法
44 2
|
5月前
|
数据采集
问卷调查题目构建要点:确保有效反馈的技巧
设计高质量问卷需注意:明确目标,使用简洁语言,避免引导性问题,保持问题单一,提供明确选项,合理顺序,避免敏感问题,预测试以修正错误,控制问卷长度,和确保题目清晰无歧义。这些步骤能提高问卷可靠性和数据质量。
55 3
|
敏捷开发 前端开发 测试技术
一个BUG导致3000万损失!涉及资金交易的功能该如何做好测试和项目管理
一个BUG导致3000万损失!涉及资金交易的功能该如何做好测试和项目管理
255 0
一个BUG导致3000万损失!涉及资金交易的功能该如何做好测试和项目管理
|
数据管理 项目管理
谈谈实施数据治理时常犯的10大错误
我所见过的最大的错误就是企业没有将文化变革纳为数据治理举措的一部分。到目前为止,这个错误是最大和最常见的错误,它最终可能导致数据治理计划的彻底失败。
|
存储 人工智能 分布式计算
如何避免大数据分析项目的失败
如何避免大数据分析项目的失败
201 0
如何避免大数据分析项目的失败
|
Java API C++
项目与产品: 现象,问题及解决方案
现象,问题和解决方案--写于2009年
446 0
|
测试技术 调度
避开这2个误区,测试目标 KPI 不再难设
阿里妹导读:好的开始是成功的一半!工作中,目标的设置是最不能马虎的事情。今天,我们请来孙阳(阿里巴巴测试开发专家),他从11年入职至今已有8年。在测试技术目标的KPI设置上,他有一些想法要与你分享。
1839 0