随着系统的业务场景复杂化、架构方案的分布D服优化演进
,我们在克服问题的自研过程中,也总会延伸出新的鲁班技术诉求。分布式ID也是分布D服诞生于这样的IT发展过程中
,在不同的自研关联模块内,我们需要一个全局唯一的鲁班ID来让模块既能并行地解耦运转,源码下载也能轻松地进行整合处理。分布D服以下
,自研首先让我们一起回顾这些典型的鲁班分布式ID场景。 1.1.1 系统分库分表 随着系统的分布D服持续运作,常规的自研单库单表在支撑更高规模的数量级时,无论是鲁班在性能或稳定性上都已经难以为继,需要我们对目标逻辑数据表进行合理的分布D服物理拆分
,这些同一业务表数据的拆分,需要有一套完整的源码库 ID生成方案来保证拆分后的各物理表中同一业务ID不相冲突,并能在后续的合并分析中可以方便快捷地计算。 以公司的营销系统的订单为例
,当前不但以分销与零售的目标组织区别来进行分库存储,来实现多租户的数据隔离
,并且会以订单的业务属性(订货单
、退货单
、调拔单等等)来进一步分拆订单数据 。在订单创建的云计算时候,根据这些规则去构造全局唯一ID,创建订单单据并保存在对应的数据库中;在通过订单号查询时,通过ID的规则
,快速路由到对应的库表中查询;在BI数仓的统计业务里,又需要汇总这些订单数据进行报表分析 。 1.1.2 系统多活部署 无论是面对着全球化的各国数据合规诉求,还是针对容灾高可用的架构设计
一 、自研方案背景
1.1 分布式ID应用的鲁班场景