【发布时间】:2021-02-23 14:02:15
【问题描述】:
我正在开发一个微(或宏)服务架构。由于团队规模较小,一些服务没有分解成完整的小型微服务,而是稍大一些,但从领域设计的角度来看仍然有很好的界限。我们现在正忙于实施一项服务,该服务负责用户分析,并能够根据这些分析创建用户细分列表。然后这些段可以触发应用程序中的操作,例如解锁 CMS 微服务中的内容等。
我的痛苦是,这个用户细分服务现在处于必须“了解”许多其他服务才能执行这些操作的情况,这感觉像是一种反模式并且倾向于分布式单体设计。这种方法的最大损失是现在其他服务与此服务紧密耦合,并且如果不先测试/更新此用户列表服务本身就无法更新。
我可以使用 protobufs 作为消息类型来实现和使用异步通信(不是 GRPC,因为 lambda 不支持这一点)。我知道这比同步通信要好,因为可能会出现超时问题等,但这真的是我能做的减少耦合的全部吗?还是我错过了一些关键的服务设计思想。
帮助!
【问题讨论】:
标签: microservices