Microservices 微服务跨数据库引用完整性
我们有一个管理代码的数据库,例如有效货币列表、国家代码列表等(以下称为CodesDB) 我们还有多个微服务,在一个单一的app+数据库中,它们对CodesDB表中的行具有外键约束 当microservice收到修改数据的请求时,我有哪些选项可以确保请求中传递的代码有效 我目前倾向于让CodesDB微服务在服务总线上发布事件,宣布何时添加或修改代码,然后让其他微服务对该类型代码感兴趣(国家/货币/等)然后可以向CodeDB微服务发出API请求,以获取其所需的状态并在其本地数据库中反映更改。这样,我们就可以在每个微服务数据库中获得引用完整性Microservices 微服务跨数据库引用完整性,microservices,Microservices,我们有一个管理代码的数据库,例如有效货币列表、国家代码列表等(以下称为CodesDB) 我们还有多个微服务,在一个单一的app+数据库中,它们对CodesDB表中的行具有外键约束 当microservice收到修改数据的请求时,我有哪些选项可以确保请求中传递的代码有效 我目前倾向于让CodesDB微服务在服务总线上发布事件,宣布何时添加或修改代码,然后让其他微服务对该类型代码感兴趣(国家/货币/等)然后可以向CodeDB微服务发出API请求,以获取其所需的状态并在其本地数据库中反映更改。这样,我
这是正确的方法吗?还有其他推荐的方法吗?异步基于事件的通知是micro services world中常用的一种模式,用于确保最终的一致性。根据您的一致性要求有多严格,您可能必须确保进行额外的检查 另一种可能的方法是使用 使用的只读数据存储。这是一种模式,其中来自多个服务的数据以非规范化形式存储在只读数据存储中。使用上述方法异步更新数据。消费者无需查询多个服务即可快速访问数据
缓存—根据性能或一致性要求,您也可以使用分布式或复制 基于事件的异步通知是微服务世界中常用的一种模式,用于确保最终的一致性。根据您的一致性要求有多严格,您可能必须确保进行额外的检查 另一种可能的方法是使用 使用的只读数据存储。这是一种模式,其中来自多个服务的数据以非规范化形式存储在只读数据存储中。使用上述方法异步更新数据。消费者无需查询多个服务即可快速访问数据 缓存—根据性能或一致性要求,您也可以使用分布式或复制