【发布时间】:2021-06-20 03:41:57
【问题描述】:
我不太确定如何描述我的问题的标题,但我目前正在研究微服务设计模式,并阅读了一些微软文档和一些关于复数视觉的视频。我读到的是,重复数据并不是错误的模式。这意味着例如,如果我有一个保存用户数据的身份微服务和一个论坛微服务,那么从论坛微服务中的身份微服务中保存部分用户对象不是“错误的”,例如用户显示名称。 值得一提的是,这两个微服务都有自己的数据库。
我似乎无法找到的是,如果在示例中给定用户更改他/她的显示名称会怎样。我猜有两个选项:
- 不要存储显示名称和存储用户ID,并让论坛微服务调用身份微服务来检索显示名称。问题在于微服务数据库不相关,因此如果删除用户,您可能会出现奇怪的行为。
- 如果用户更改显示名称,则向论坛微服务触发事件以进行更新。例如,这可以通过消息总线来完成。
我认为消息总线(选项 2)是最合适的,但我想知道我是否可能缺少其他选项?
【问题讨论】:
标签: microservices