方枪枪的java世界

不要因为风雨飘落就停止了你的脚步,真正的得失就在你的心中。 做喜欢做的事,不轻言放弃!

企业框架设计-分库策略

1、按领域对象分库,一个主实体及其相关聚合数据放到一个库
     如:
     客户customer=90001下的所有用户subscriber,以及这些用户的产品实例prodInst、产品实例关系,放到A库。
     客户customer=90002下的所有用户subscriber,以及这些用户的产品实例prodInst、产品实例关系,放到B库。

2、概念定义
     分库字段,即分库计算银子,如:region+CUST_ID,计算得到分库ID
     分库携带字段(通过编码加入分库ID前缀),如:subsId,通常为各表主键
     分库路由字段,很多场景用于作为sql条件,通过与分库ID建立对应关系实现路由,如:服务号码

3、业务实例
     用户subscriber表关键字段,subsId,region,custId
     用户产品订购实例表关键字段,prodinst_id,subsId,不需要添加region和custId,在查询产品订购实例时,通过subsId的前缀分库ID进行路由,达到分库效果。

     531 cust:0001-2222 分库ID:1001 物理分区:p1
     531 cust:2223-5555 分库ID:1002 物理分区:p2
     531 cust:5556-9999 分库ID:1003 物理分区:p3

4、流程定义和流程实例分库
     流程定义和流程配置部分库,通过procInstId携带分库前缀实现,
     流程实例创建后,允许业务侧修改procInstId,添加分库前缀,所有inst调用都带有这个路由字段即可。
  

posted on 2016-12-02 22:05 做强大的自己 阅读(72) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: