我是微服务架构的新手,我希望了解服务之间应该/如何相互作用。
接受我当前的故事要求我:
我的客户是我们在过去三年中开发的一个整体项目。这里的目标是将这个大型项目逐步发展为小型微服务项目。
因此,我的整体项目可以使用连接的服务来调用一个(或多个)API调用。无需向此客户端返回任何内容,因此在这种情况下,“即发即弃”后的呼叫就足够了。
所以我的迭代方法是首先使发送电子邮件服务。效果很好。我的整体客户端调用了存在于微服务中的发送电子邮件。
然后我开始添加备份。它已经有代码气味。我无法发送而没有备份,因此我已经在耦合两个需求。但是我还是继续前进。
当我要添加持久性时,我停下了脚步。如果备份和发送对于耦合产生的代码异味而言已经足够严重,则发送,备份和
持久化是不可接受的。所以我的看法是,这里有三项服务需要等待吗?电子邮件,备份并保留。
哪个带给我我的问题。我该如何设计解决方案来实现这一目标?
我是否需要API网关来接受较大的DTO,然后网关将数据拆分为较小的DTO,以发送适当的服务?
我如何处理每个服务ID取决于上一个调用的事实?例如电子邮件发送,需要发送结果,进行备份,例如,需要发送文件路径。
我已经研究过RabbitMQ,我想我理解了这个主意,但是我正在苦苦挣扎的另一件事是,我看到的所有图表都显示了客户端,它们指向一个调用许多API端点的网关,但是随后我看到了实现示例始终将“消息队列”服务作为控制台应用程序]
我是微服务架构的新手,我希望了解服务之间应该/如何进行交互。要接受我当前的故事,我需要:通过电子邮件发送文档备份...
也许您可以查看NServiceBus。它是一个用于发送消息的开源库。控制台应用程序是endpoint。它可以使用RabbitMQ来transport消息。