我们正着手开展一个新的项目开发,我们将有多个微服务相互通信,以便在云原生系统中提供信息。我们的应用程序将被分解为多种服务,如文本清理器,实体提取器,实体解析器,输出转换器。正如您在图表中看到的那样,我们有一些分支,其中输入到其他服务所需的一个服务,等等。
只有一项服务会暴露在外面。其他人则是内部的。我们必须为客户提供同步响应。
我想检查是否有人可以在这里指导我最好的模式:
1-我们是否应该有一个包含所有项目模型类的Wrapper类,因为在最终输出转换器中需要所有细节,或者数据如何流动以便数据在上一个微服务中被整理出来。我们希望保持系统松散耦合,并考虑如何在没有构成所有这些数据的中间层的情况下协调这个流程?
2-如何协调这个流程?服务网/ Api网关?
看起来像一个基于工作流程的解决方案..当涉及这么多步骤时;你可以给消费者的唯一回应就是接受了请求..并且在后台开始流程。你不能让消费者等待很长时间,因为他们会让连接超时。
如果所有这些服务都部署在不同的服务器上(微服务定义应该是可扩展性的情况);您可以通过HTTP或使用某些消息传递解决方案(如JMS)进行通信,或者如果您部署在云上;他们提供基于工作流的服务