我正在创建一个具有微服务体系结构的项目。我创造了两个微型服务。
其中一个是产品实体,另一个是票据实体。它们有自己的端点,并且与网关连接在一起(我使用的是jhipster微服务体系结构)。
该法案我在想如何在这两位小姐之间交流。我脑子里有三种方法:
如果你有其他的方法,我很感谢你能和我分享。
编辑
发布于 2016-04-18 18:22:30
我不确定我要回答的是不是正确的方法。我还在学习自己..。但是我可以告诉你我是如何实现我的微服务尝试的。
首先,我从基于HTTP通信的微服务使用这个博客开始。这很好,但问题是,您在服务之间创建了依赖关系。服务A需要知道服务B,并且需要直接调用它(当然是通过服务发现等)。这是您在开发微服务时通常要避免的情况。
我最近开始使用的另一种方法是使用message bus。实际上,这是你在问题中提到的第三个选择。
我有一个服务A,它存储人员(只是一个例子)。服务在创建新用户时所做的事情是:它在RabbitMQ总线:personCreatedEvent上发送一个personCreatedEvent。如果有任何其他服务对这样的事件感兴趣,它们可以归为它们。这些感兴趣的服务将它们感兴趣的相关信息保存在自己的数据存储中。
使用最后一种方法,您的服务之间并不存在真正的依赖关系,因为它们之间不直接通信。服务A不知道服务B,因为B只向对这些事件感兴趣的服务发送事件到RabbitMQ,反之亦然。
当然,您在服务上的数据存储之间有重复。但是这也是有利可图的,例如服务B不需要使用与服务A相同的模式或数据存储机制。它只以对该服务最好的方式存储相关信息。
https://stackoverflow.com/questions/36701111
复制相似问题