【发布时间】:2020-10-04 04:08:52
【问题描述】:
我有 2 个选项。
1)当 addItemTobasket 请求到来时。 gRPC 对产品、定价、用户服务的请求并获取信息。并将它们保存到购物车数据库。
或者不获取其他服务信息。仅保存 id 之类的引用。并保存篮子分贝。当获取购物篮请求调用 gRPC 请求时,将所有服务数据聚合为视图模型并返回。
2) 创建共享 redis 会话服务器,并且当将项目添加到购物车事件引发 itemAddedToCart 时包含参考 ID。主要服务消费该事件。产品服务获取带有事件的id的产品并写入产品信息共享redis。定价服务价格等。当 getbasket 请求到来时,redis 中的数据已准备好。
对于 1) 它耦合了所有服务。这对 ddd 不利。
对于 2) 它是异步的。当用户将商品添加到购物车时。等待响应者成功或失败。
如果有更好的最佳实践,请与我分享。
【问题讨论】:
标签: domain-driven-design microservices