我们正在实施面向服务的体系结构(SOA)。我们有每个不同的服务数据库,客户管理,订单,发货,退款。在不同数据库中的表之间维护外键关系的策略是什么(因为SQL Server中不允许跨数据库外键)?外键是否应该替换为业务API规则?
这不是微服务;其中数据库信息在每个领域中复制,而是SOA。我们不希望将所有内容都放在一个数据库中,因为不同的备份维护时间,不希望死锁/失控查询导致所有服务中断。面向服务的体系结构并不规定我们应该有一个还是多个数据库。
发布于 2019-06-14 16:35:00
您可以使用由创建者生成的Guid(UUID)作为实体的键,然后可以跨数据库和表使用该Guid来引用相关实体。
例如,当您创建一个新订单时,ui将生成该订单的Id,向创建该订单的组件发送一条消息,然后该组件将使用该orderId发布一个事件,以便其他组件可以对该订单执行相关工作,而无需访问数据库来获取该id。
讲得通?
https://stackoverflow.com/questions/56586137
复制相似问题