系统集成平台设想

背景

当前已经运行了多年的稳定系统,随着业务的发展,需要处理的数据量不断增大,大大超过原先设定的容量限制。在这种情况下,如何不修改代码或少量修改,通过一个平台,将已有系统复制多份,从而成倍提高整个系统的性能?

定义

系统集成平台就是这样一个平台:按照一个标准,将整体数据分成n份,分布在n份相同的系统中。这n份系统应该是已经成熟运行的系统的n份复制,每个系统自成一体且不相互交互,平台负责对n份系统做输入分发和输出合并。

为什么需要它

代码不需修改或少量修改

 

什么情况不能使用

像一些报表,整体数据分成n份后,就不能在整体数据上做查询。

当然,通过对数据库sql层上的开发包装,也可以支持全局数据查询。

和应用集群、数据库集群有什么不同

应用集群,数据库集群是在某个环节上的集群,一个环节优化其他环节可能也需要优化,使用本平台将一次性成倍提高整体性能。

另外,一个系统有多台服务器,生产已经验证了在某个配置,在某个容量下的性能达到要求;这样,再按照这个复制整套系统,性能也是验证过的。

方案思想

 

       按照一个规则将数据分成n份,将原来的单一系统复制为n份,分别为分系统1,分系统2,分系统n。每个分系统管理一部分数据

       每个分系统都是独立运行的系统,之间不交互

       每个分系统代码、结构相同,管理自己分片内数据

       分系统均衡器负责将数据分片到不同的分系统中。

       对外访问均衡器。均衡器要代理所有对外接口。

结构图:



 

均衡器(或叫分系统前置)负责以下功能

数据分片

       每个分系统是一个可以独立运行的系统,数据是独立,关系一致的。如流水对应的客户、卡片等要保证在同一分系统中。

       分片函数:分系统号=f(输入)。对任何输入,可以计算出一个系统号

       总分区固定法,如固定为10个分系统。对任何输入,计算出客户号,客户号个位数字就是分系统号。

       分区大小固定法,如固定分系统大小为500万。对任何输入,计算出客户号,对这个客户号按照插入顺序给一个插入顺序号。当顺序号超过500万时,此系统容量已满,分配给新的分系统。均衡器要保存客户号在哪个分系统中。

代理对外接口

       代理原系统的所有对外通讯(接口)

       接口类型有:

                       文件类型

应能通过配置方式识别出文件中的分区关键字段,以便决定转发给哪个分系统。

                       报文(各种socketweb service

原系统的这些接口都需要在均衡器上开发。均衡器应该能通过配置方式识别出报文中的分区关键字段,以便决定转发给哪个分系统。

                其他形式的接口,请大家补充。

 

               

 

猜你喜欢

转载自xinglijun1973.iteye.com/blog/2418418