我正在构建一个新的应用程序,并且正在阅读有关微服务架构的信息。从开发,部署和生命周期管理的角度来看,体系结构本身很有意义。但是出现的一个问题是关于如何处理主数据。
例如,我有2个应用程序-例如销售应用程序和票务应用程序。假设这两个应用都是作为自己的微服务构建的。但是,这两个应用程序在部署时(假设分别部署,例如Sales使用MongoDB,Ticketing使用MariaDB),则需要访问相同的主数据实例,例如Accounts,Products。这意味着将有一个给定主数据实体的所有者应用程序(例如,对于帐户,可能是销售应用程序)和一个有兴趣的一方(例如,票务应用程序将需要有关帐户的信息)。
有多种方法可以实现:-从主方到感兴趣方的数据复制-从感兴趣方到主方的同步读取(微服务体系结构范例不建议同步依赖性)-自己的集中式存储库
即使在客户中,也可能有一个核心部分,对于销售和票务都是通用的(例如,帐户名,地址等)。但是,帐户的某些方面可能仅与销售相关,而其他方面仅与票务相关。
关于上述任何选项有什么想法/最佳实践/意见吗?