【发布时间】:2018-07-01 12:46:10
【问题描述】:
场景很简单:许多公司需要共享一些参考数据(比如说,产品列表及其属性)。
问题是目前每个实体都在内部收集/清理数据,然后与其他公司共享数据,这导致了交换文件(电子表格)的冗长过程。
解决这个问题的现代方法有哪些?当然,这种情况在现代企业生活中很常见,所以我正在寻找一些关于标准流程/技术的指导。
谢谢!
【问题讨论】:
标签: database distributed consensus
场景很简单:许多公司需要共享一些参考数据(比如说,产品列表及其属性)。
问题是目前每个实体都在内部收集/清理数据,然后与其他公司共享数据,这导致了交换文件(电子表格)的冗长过程。
解决这个问题的现代方法有哪些?当然,这种情况在现代企业生活中很常见,所以我正在寻找一些关于标准流程/技术的指导。
谢谢!
【问题讨论】:
标签: database distributed consensus
这确实是一种常见的情况,有多种解决问题的方法,从专用的商业产品(如 Tibco MDM 或 IBM、Dell/Boomi 等的类似产品),往往是大型的单片主机轻量级微服务的数据解决方案,每个微服务都拥有特定的数据子集,并将相关数据的更改发布到需要它的其他微服务。如果公司之间的数据库技术和架构大体相似,则有时您可以使用复制或数据库日志传送之类的东西来同步公司之间的数据。如果您的数据不需要自动同步,则可以使用 ETL 程序从一家公司提取对主数据的更改并将其加载到其他公司。
利用领域驱动设计的近实时方法将为需要管理的每组主数据元素(例如产品)确定一个 Bounded Context。然后,每个公司将定义他们的产品域模型,定义一个产品Aggregate,它公开产品的公共表面并抽象出公司特定的细节。领域模型还将定义每个公司可以发布的与其产品聚合相关的事件。如果不同的公司拥有产品的不同部分,他们可能会将这些字段的更改发布为其他公司订阅的Domain Events。
在每个公司中定义产品的底层存储库和数据结构将由接收更改并将其应用到公司特定域的命令处理器进行更新。这可以使用 ESB、微服务或消息代理进行编排,具体取决于公司之间所需处理的复杂性,例如路由、转换和翻译。
【讨论】: