我想'重定向'网络请求到另一个服务。我想对它们做任何改变,并将它们发送给另一个服务(我假设有类似http-clj的东西)。结果会做同样的跳跃。从响铃请求创建新的HTTP呼叫
这是必需的,因为我们正在替换部分服务,但我们不能直接让客户端调用服务。
我们部署到一个tomcat,但通常它应该适用于任何响铃请求。
有没有一个优雅的方式来做到这一点?
感谢
我想'重定向'网络请求到另一个服务。我想对它们做任何改变,并将它们发送给另一个服务(我假设有类似http-clj的东西)。结果会做同样的跳跃。从响铃请求创建新的HTTP呼叫
这是必需的,因为我们正在替换部分服务,但我们不能直接让客户端调用服务。
我们部署到一个tomcat,但通常它应该适用于任何响铃请求。
有没有一个优雅的方式来做到这一点?
感谢
这不是一个具体的环答案,但我觉得你会更好,在这两个旧的Web服务和新的前使用反向代理像Nginx的更换网站服务。
反向代理可以轻松响应不同的传入URL并透明地将它们传递给幕后的正确Web服务。这是一种灵活而强大的方法,随着您的服务的增长,这将允许使用多种分区的URL方案。
我多年来一直在做这件事情,在请求进来的情况下,它需要去两个不同的地方。 (关于微服务的队列咆哮和这里意想不到的后果的规律)我通常使用http-kit来使用core.async。
(handler .....
(let [output (chan)]
(http/post bakcend-url (make-new-request-options request)
#(do (async/>!! output %)
(async/close! output)))
(go (async/<! (async/timeout 2000))
(async/>! output {:status 500}))
...)