首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

设计难题:领导的方案和小弟我的方案哪种更优

2012-09-04 
设计难题:领导的方案和我的方案哪种更优?[环境] 有多台高性能数据库服务器组成一个中央服务器集群,提供核

设计难题:领导的方案和我的方案哪种更优?
[环境]
 有多台高性能数据库服务器组成一个中央服务器集群,提供核心共享数据库,可以认为中央服务器是绝对安全的.另外有若干台数据库服务器供业务访问.
 
 [业务流程介绍]
 办理某业务时需要对信用额度进行检测和操作.各种业务对额度的访问频繁.大致流程如下:
 业务服务器:提交单据时,判断信用额度减冻结额度是否大于0,大于0则增加冻结额度,信用额度余额不变,业务继续.小于0则禁止提交,中止操作.
 中央服务器:单据确认成功时,判断信用额度余额是否足够,足够则取消提交时的额度冻结,即冻结额度减少,同时也扣除信用额度.额度不足则禁止确认,中止操作.
 
 [目的]
 现在做一个设计,保证对这些额度数据的高可用性和高性能访问,当然也要保证数据的准确性.
 
 
 方案A:
 设计一个表,存在于中央服务器,有冻结额度和信用额度余额字段(当然还有其他基本信息).业务服务器对额度的操作都在这个集群上完成.数据流程同上文中介绍.
 当一台业务服务器挂掉时,立刻切换到其他业务服务器操作.依然保持对额度信息的访问.
 
 
 方案B:
 分别设计一张信用额度表和一张冻结额度表.
 信用额度余额表存在于中央服务器.冻结额度表存在于业务服务器.
 
 为防止业务服务器挂掉而无法访问冻结额度.再增加一组业务服务器的备份服务器,用事务同步将所有业务服务器中的冻结额度实时备份至备份服务器.当业务服务器挂掉时,立即切换至其他业务服务器,并访问备用服务器的冻结额度信息.
 关于备用服务器的另一个变招是,将所有业务服务器的冻结额度数据与备用服务器做合并同步,这样能减少问题的复杂度,但可能造成数据的延迟.
 
 数据流程:
 发生业务提交单据时,分别读取业务服务器上冻结额度与中央服务器信用额度,判断可用余额是否足够,若余额足够,则增加业务服务器上的冻结额度,若不够,则禁止操作.
 
 当确认单据时,读取中央服务器的信用额度,若足够,则扣除额度,并且访问业务服务器,取消单据的冻结额度.若额度不足,则禁止操作.
 
 
 文字比较多,简洁表达一下就是,方案A将冻结额度和信用额度存储在中央服务器,对冻结额度的更改和对信用额度的更改都在中央服务器上进行,实现简单,缺点是对冻结额度和信用额度的更改都在中央服务器,增加中央服务器压力.
 
 而方案B是将冻结额度与信用额度分开存储.对冻结额度的更改只在业务服务器上进行,保证了冻结额度的高效访问,分解了了对额度的访问,也一定程度减少中央服务器压力.缺点是实现复杂,可能会有延迟和不可靠性,跨服务器操作有损性能.而且需要增加另一个备用服务器作实时同步.
 
 
 提问:
 
 1:到底哪种方案更合理呢?
 
 2:是否有更优方案?
 
 3:猜猜哪种方案是我的,哪种方案是领导的?
 

热点排行