2016-08-12 14:23
简单来说我是建议在性能压力大的时候采用数据库集群,使用读写分离的方式提升效率,分库分表相对来说比较麻烦。读写分离是对开发者透明的,可以使用中间件或者配置 mysql 的方式自动化实现读写分离。
回到你这的问题:
1:这种思路是可以的,但关键在于对开发者来说要是透明的,不需要开发者去处理不同数据库之间的差异,例如,你可以通过扩展 MyDbPro extends DbPro,将 MyDbPro 注入到 Db 中替换原来的DbPro 对象,在这个 MyDbPro 中使用一个 threadlocal 来自动化去判断数据库是哪个,然后自动化 use(...) 到不同的数据库上去。对于 Model 来说,你可以通过实现一个 MyBaseModel 继承原来的 BaseModel 实现数据源自动切换。或者是针对不同的数据源映射到不同的 Model 上去最好。
2:建议就是我刚刚讲的,一是尽可能使用读写分离集群方式。二是可以将大系统拆分成小型服务,让这些个小型服务都使用独立的数据库,再通过 jfinal 提供 http api 将服务连接起来。如果一定要分库分表,建议要建立一套自动化封装,让开发者不用关心分库分表的事情
2016-08-12 12:21
@FS心情 在个人空间还有一点点功能完善好以后,会立即出一个官方 API 频道,文档详细到方法的参数代表的意思,使用案例代码,多多关注社区动态