gpt4 book ai didi

architecture - 不同微服务之间的连接表

转载 作者:行者123 更新时间:2023-12-04 01:48:33 26 4
gpt4 key购买 nike

我仍在尝试理解微服务架构。

分离不同应用程序(包括数据库)的想法让我很兴奋。但是如果有两个微服务,我仍然感到困惑,例如产品和用户。 product 和 user 在他们的数据库中分别拥有表 product 和 user 。根据微服务的最佳实践,我们只能从服务访问数据库。

问题是,让我们假设我们有一个包含 user_id 列的产品表。我们想做搜索产品,它也返回创建产品的用户的姓名。这就需要在产品微服务中的产品表和用户微服务中的用户表之间进行连接。你怎么处理这个?

最佳答案

您必须调用每个微服务并手动加入或将相关用户 ID 传递给每个服务。

用户微服务:

SELECT * FROM Users WHERE some condition is true

获取用户列表,包括他们的 id s。

产品微服务:
SELECT * FROM Products WHERE some condition is true AND userId IN (.........)

所以用户和产品仍然可以在两个不同的数据库中,产品只需要有一个 userId 的概念。

反过来也可以,ProductMicroserivce:
SELECT * FROM Products WHERE some condition is true

提取所有 UserIds 然后调用 UserMicroservice:
SELECT * FROM Users WHERE some condition is true AND id IN (.........)

关于architecture - 不同微服务之间的连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44085454/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com