gpt4 book ai didi

sql - 如何使用微服务架构模拟连接概念

转载 作者:搜寻专家 更新时间:2023-10-30 20:50:22 24 4
gpt4 key购买 nike

<分区>

我是微服务架构的新手,例如,我们在隔离机器和两个 sql 数据库中有两个独立的服务,
Location.Service 有一个如下所示的数据库

Locations:
[
{Id: key, Name: string}
]

Product.Service 有一个如下所示的数据库

Products:
[
{Id: key, Name: string, LocationId: key}
]

这两个服务可以使用基于事件的消息协议(protocol)(如 AMQP)正确协同工作,一切听起来都非常好。但我在像这样在 UI 中列出产品时遇到问题

ProductId(ok), ProductName(ok), ProductLocationId(ok), ProductLocationName(???)

我怎样才能找到使用位置名称列出产品的解决方案?在简单的单体应用程序中,我们可以很容易地在这些表之间进行连接,但是在多个数据库上会出现问题吗?
解决方案 1:查询应该有一个嵌套的,例如在 ORM 工具中有这样的 locationName

var products = productService.select(p => new ProductDto{
ProductId= p.Id,
ProductName= p.Name,
LocationId= p.LocationId,
LocationName= locationService.getNameById(p.LocationId)
}).ToList();

可能这种方式不合理
解决方案 2:像这样更改 ProductService 的数据库设计

Products
[
{Id: key, Name: string, LocationId: key, LocationName: string}
]

这样,如果使用 locationService 的位置名称已更改,我应该更新所有产品位置名称(使用事件消息)所以,我认为这种方式应该在项目结构中引起一些困惑
解决方案3:这两个服务应该在同一个服务中!所以在敏捷项目中,我们无法预估 future ,所以我们不得不将所有服务归为一项服务,这显然是不推荐的!

解决这个问题的最佳想法是什么?

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