我们正在着手进行新的项目开发,在该项目中,我们将有多个微服务相互通信以在云本机系统中提供信息。我们的应用程序将分解为多种服务,例如文本清理器,实体提取器,实体解析器,输出转换器。正如您在图中所看到的,我们有一些分支,其中另一项服务需要输入某项服务的输入,依此类推。
只有一项服务会暴露在外部。其他则是内部的。而且我们必须向客户提供同步响应。
我想检查是否有人可以将我引导到最佳模式:
1-我们是否应该有一个Wrapper类,该类具有用于所有项目的模型类,因为最终输出转换器中需要所有细节,或者数据应该如何流动,以便在最后的微服务中整理出数据。我们想保持系统松散耦合,并正在考虑如何在没有中间层组成所有这些数据的情况下协调流程?
2-如何协调此流程?服务网格/ Api网关?
答案 0 :(得分:1)
看起来像一个基于工作流程的解决方案。您只能给消费者一个响应,就是接受请求。在后台启动该过程。您不能让消费者等待很长时间,因为他们会超时。
如果所有这些服务都部署在不同的服务器上(对于微服务定义可伸缩性,应该是这种情况);您可以通过HTTP或使用某些消息传递解决方案(如JMS)进行通信,或者您可以将u部署在云中;他们提供基于工作流的服务。