【发布时间】:2021-02-26 18:51:53
【问题描述】:
我正在尝试找出有关微服务架构的一般理解问题。
例如,如果我有三个服务:
- 订购服务
- 产品服务
- 用户服务
并且每个服务数据都需要连接到用户。那么哪个用户添加了产品,哪个用户订购了一些东西等等。
所以我需要说“嘿订单服务,给我特定用户的所有订单”。这意味着在订单服务数据库中会有一个“用户 ID”列,对吗?但这只是与用户服务数据库中的用户数据无关的列,对吗?是这样的吗?
因此,如果用户被删除,可能需要询问订单服务是否还有具有该用户 ID etx 的订单。
所以问题是,用户 ID 的列是否根本没有连接到用户表,所以没有外键等,因为它们是完全不同的数据库?
非常感谢!
【问题讨论】:
-
刚刚快速阅读了一下,根据我的理解,共享同一个数据库并不违反微服务架构,只要每个微服务拥有的数据都是私有的。接下来,我确实相信需要某种形式的外键来将信息与用户联系起来。在继续向订单服务询问与该特定密钥匹配的订单之前,用户服务可能必须获取此密钥。请记住,我没有开发过微服务,所以这只是我对该主题的初步了解。
标签: database-design service architecture microservices