我们有一个用作外观的API,封装了对内部服务的调用。我们正计划更改外观与内部服务之间的交互,因为我们正在修改内部服务以使用队列,从而使其更具弹性和弹性。我们现在无法更改客户端使用API的方式,这就是为什么我们希望在客户端和外观之间保持阻塞调用。
该服务将公开一个Web方法来接收请求,将消息发布到队列中,并尽快将调用返回到立面。处理完成后,该服务将调用立面的内部Web方法,释放第一个调用(立面的客户端)。
立面使用Spring Boot和MVC构建。问题是:如何“保持”客户端的http请求,等待服务发出的信号将数据返回给客户端?我们考虑了以下方法:
我们担心此解决方案的可扩展性和可用性(我们知道保留客户端http请求并不好,但是必须忍受一段时间)。
这里有人需要做类似的事情吗?使用了什么方法?有没有可以使用的框架(Java)?
答案 0 :(得分:1)
许多技术可以用来解决您的问题,例如:spring mvc和spring webflux
https://docs.spring.io/spring/docs/current/spring-framework-reference/web.html#mvc-ann-async