分布式数据库操作方案讨论
问题描述随着动态分割的架构思想提出,引出来两个问题:
1、 如何实现数据库的动态添加而不需要改变应用代码,进而提高系统的易维护性?
2、 如何实现多个数据库之间业务操作时的事务一致性问题?
解决方案及数据流程
解决方案1、 引入数据库池的概念,将多个分散的数据库实例引入数据库池;
2、 引入业务控制器的概念,定义不同的业务规则对应的的数据库实例标识;
3、 引入数据库控制的概念,将多个数据库池发布到该控制器范围内;
4、 在应用服务器、接口服务器与数据库池之间添加业务规则控制器、数据控制器;
数据流程1、 业务数据经视图层流入控制层,控制层通过业务规则控制器获取该业务数据对应的数据库标识;
2、 控制层将业务数据、数据库标识传递到业务层;
3、 业务层对业务数据进行分解、组装后形成可持久化的业务数据,并将业务数据传到数据层(数据库事务一致性问题统一在业务层控制);
4、 数据层根据业务层传入得数据库标识经数据控制器获得数据库实例,进行数据持久化操作;
遗留问题1、 数据库实例的添加需要重新启停应用服务器、接口服务器
2、 需要定义一系列详尽的业务规则控制,明确每个业务规则对应那些数据库实例