如何使用Spring Cloud数据流处理同步响应



我们正在设计将我们的单片Java应用程序迁移到微服务的过程,以满足各种客户端需求,如可扩展性、高可用性等。我们的应用程序的核心功能是数据处理,即从源中检索数据,将其进行0次或多次转换,并最终将结果推送到目的地。出于这个原因,我们考虑在Kubernetes和Kafka上运行Spring Cloud Data Flow来为我们做繁重的工作,并使用一些自定义构建的流应用程序来处理我们的业务逻辑。

不过,我们还没有弄清楚的一件事是,它如何处理对通过HTTP源发送的请求的同步响应,特别是在响应之前需要进行一些处理的情况下。例如,假设接收到一个JSON数据包中包含两个不同数量的请求。然后我们将其传递给一个自定义的";加法";transformer,输出这些金额的总和,并需要将结果返回给调用方。然而,由于transformer是一个完全独立的进程,它通过使用Kafka主题中的数据来接收数据,因此它无法访问原始HTTP连接进行响应。

这是Spring Cloud Data Flow可能实现的吗?也许可以将其与Spring Cloud Gateway之类的东西结合起来管理HTTP连接?还是我们完全找错树了?

将异步流(Spring Cloud Data Flow(与同步HTTP流(HTTP请求有超时,异步流处理时间未知(结合起来并不容易。您可以做的是返回一个id作为HTTP源的响应,并使用另一个HTTP端点来检查初始请求的状态,并使用它返回结果。这是一种轮询方法。

最新更新