【问题标题】:DDD how to design basket serviceDDD如何设计篮子服务
【发布时间】: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


    【解决方案1】:

    老实说,我会说选择选项 1。它并不复杂,因为没有那么多相互关联的部分。此外,根据您的应用程序的大小,以后当您更好地了解正在发生的事情时,这种耦合很容易消除。

    【讨论】:

    • 这很简单,但我想做到最好。这是我的爱好项目。它会成为重载的瓶颈吗?当产品服务下降时。篮子没用。或者定价,发货..我不想要那个
    • 好吧,那你回答了你自己的问题,不是吗?如果这些是您想要避免的事情,您必须做出相应的决定。
    • 是的,但第二个场景是异步的。其实我需要找到新的方法。这就是我写这个问题的原因。我需要第三个选项。
    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 2022-07-05
    • 2018-12-01
    • 2010-11-25
    • 2012-11-07
    • 2019-07-03
    • 2016-11-15
    • 1970-01-01
    相关资源
    最近更新 更多