【发布时间】:2025-12-01 01:45:01
【问题描述】:
假设我想创建一个允许管理用户帐户的博客平台,因此我想出了 2 个微服务:
-
Blogging- 管理帖子、标签等 -
Users- 管理用户、他们的角色等。
我很清楚,Post 包含作者的 ID (User),User 包含他写的 Posts 的 ID。
问题是当客户端请求Post时,我还想返回作者的名字,并在DTO(视图模型)中一起发送给客户端。我看到了两种可能的解决方案:
- 在
Blogging服务的域中引入User(仅ID 和名称)的概念。每次客户端请求Post时,所有相关数据都仅从该微服务中获取。每次在Users微服务中修改用户名时,都会通知该服务并更新作者姓名。 - 将关注点完全分开。每次客户端请求
Post时,都会调用Blogging微服务获取Post,然后调用Users微服务根据ID获取作者姓名。
到目前为止,我倾向于解决方案 #1,因为当请求 Post 时,它只需要调用 1 个微服务,但是假设函数(微服务)的数量是否开始增长,我会不断添加一些小概念他们每个人只是为了限制调用次数,恐怕我最终会变成意大利面条Blogging微服务......但我也不认为微服务的数量会显着增长;)
你觉得哪种方法更好,为什么?是否有任何方法违反了微服务架构原则并且我的担忧是有道理的?
【问题讨论】:
标签: microservices domain-driven-design separation-of-concerns