将 Spring MVC 的工作委托给 Worker 应用程序;是 Spring 集成行业标准

Delegating work from Spring MVC to Worker application; is Spring integration the industry standard

我有一个 Spring MVC 应用程序,该应用程序当前注入了一个 @Service,它运行 "heavy" 负载,基本上是根据给定信息创建 PDF。我正在考虑将其卸载到一个单独的应用程序中,以减轻前置网络服务器的负载。

整个用户工作流程是用户在表单中提供一些信息,根据所提供的信息,他会转到两种不同的表单中的一种,从而能够提供更多信息以及付款(使用 Stripe)。用户发送此表单后,应生成 PDF 并使用电子邮件发送给用户。 PDF 创建是最繁重的一步。如果生成或邮寄出错,Stripe 付款将被退还。所以这一切都依赖于同步调用。

Spring 整合是解决这个问题的好方法吗?我基本上希望我的前置 MVC 服务器仅在创建完成时回复,因为它将负责向用户发送电子邮件,否则退还付款。

是的,很合适。您只需要选择与后端通信的技术(rabbitmq、REST、JMS,甚至是简单的 RMI)。 RPC 由适当的出站网关实现,Web 线程将在那里暂停,直到收到回复(或发生超时)。在后端,使用等效的入站网关。

一个好处是,如果您决定以后可以更改通信技术,而不会对应用程序(任何一方)产生影响,除了重新配置网关。