在实际星空项目中,可能大家会遇到客户使用了很多组织,但由于时间久了,客户体量相当庞大的时候,可能会由于数据量特别大想组织账套拆分,但拆分后会面临很多问题,比如过去很多第三方异构系统过去做查询或者做数据写入时只是为具体数据中心的某些组织,但拆分后就面临知道某组织在某个数据中心账套里,需要能动态寻址,动态寻址改造后针对其他后续组织再拆分后还是能支持,不用再改任何代码,拆分跨数据中心组织之间的往来也需要能根据组织动态寻址,但这种动态寻址要怎么实现呢?我这里根据项目实际遇到的案例进行总结分析,希望能帮助到未来更多的项目。
一、设计时需要考虑的因素:
1. 组织所在的数据中心一定要做到动态,虽然今天这个组织可能在A数据中心,说不定下次就可能拆到C数据中心了, 所以这个对应关系一定是需要可以动态配置,数据中心所对应的组织说不定后续也会变化
2. 需要考虑星空第三方集成在进入跨数据中心时首先要进行登录验证,因此动态寻址根据组织获取到的数据中心的信息里必须包含登录验证的各种信息
3. 需要考虑动态寻址时可能需要获取所有数据中心,也有可能根据某组织获取对应的数据中心信息
二、具体动态寻址实现方案:
1 增加数据中心基础资料(原型如下)
•(1)字段包括:账套名称、账套ID、站点地址、集成用户、集成密码,这几个字段除账套名称外,其他字段都是用于集成时登录验证的必须字段,这些字段配置时需与WEB API的第三方授权保持一致
•数据中心新增的组织ID需要反写到组织机构新增字段组织ID字段中,建立与数据中心的关联
(2)对外接口要求
2. 原基础资料组织机构调整
①增加数据中心相关信息
•根据组织ID/名称,获取账套信息(包括站点地址、集成用户名、集成密码登)
这样第三方系统或者星空的跨数据中心的往来业务则可以根据组织动态确定所在的数据中心,如果是跨数据中心时则需要动态寻址,进行登录验证,如果是同数据中心访问时则不需要再重复登录
推荐阅读