我在 Spring Boot 中定义了一个 REST 服务,它公开了一个同步 REST API,供用户从基于 Web 的 UI 调用。该服务有望提供实时响应。
该服务以异步方式与外部端点对话。即: - 请求的单个单向出站消息 - 响应的单个单向入站消息
如何组合这两条消息以提供同步行为的印象?我正在考虑一些方法,例如:
Rest Service 向端点发布请求。一旦端点响应,响应就会被添加到 ConcurrentHashMap。Rest Service 每隔几毫秒查询一次 HashMap,一旦找到正确的响应,它就会以有效的 HTTP 原因码退出。这类似于民意调查,我在想我们是否可以避免这种情况。
Rest Service 向端点发布请求。一旦端点响应,就会通知 Rest Service 中的等待线程。然而,等待线程只有在收到正确的响应(即匹配相关 ID 等)时才应该结束。这可能吗?
我意识到这类似于 JMS 队列请求响应场景,其中每个 JMS 队列请求都使用消息选择器标准在响应队列上打开一个侦听器。但是在这种情况下,我必须使用 HTTP 来实现它。
欢迎对此提出任何想法。我完全相信我错过了一些非常基本的东西,但不确定是什么。
非常感谢!