在之前的博客中,我将微服务放在领域驱动设计(以下简称 DDD)的背景下。 DDD 以语言为起点来定义属于同一事物的领域。因此,它有助于划分您的微服务。它也有助于理解为什么重用常常会失败。以及事件源如何帮助再次实现这一点。
让我提前坦白一点:长期以来,我也几乎虔诚地相信重复使用。在世纪之交,我在荷兰合作银行参与了“元件中心”的创建。目标:通过组织一个可以在其他地方使用的软件组件市场来促进重用。它是成功的,特别是对于相对较小的技术组件而言。由于我们无法充分证明其附加值,最终被废除。
重用还会无意中导致我在“有界上下文”博客中提出的一个问 柬埔寨号码数据 题 :如果组件部署在最初创建时的上下文以外的其他上下文中,就会导致问题。一个组件中的含义、所使用的世界观可能与另一个组件不同。如果组件也适应在新环境中工作,通常只会让情况变得更糟:含义混淆的可能性会增加……
重用的关键是信息本身的重用,因此不需要管理信息的软件。例如,如果您报告某处搬迁,您会希望确保之后从该组织收到的任何信件都被发送到正确的地址。实现此目的(从而实现软件重用)的直接方法是“关系”服务,其中每个需要地址的软件组件都会在那一刻检索地址。这意味着这样的中心组件很快就会成为瓶颈,而且成为“单点故障。