2017-05-17 40 views
1

我想'重定向'网络请求到另一个服务。我想对它们做任何改变,并将它们发送给另一个服务(我假设有类似http-clj的东西)。结果会做同样的跳跃。从响铃请求创建新的HTTP呼叫

这是必需的,因为我们正在替换部分服务,但我们不能直接让客户端调用服务。

我们部署到一个tomcat,但通常它应该适用于任何响铃请求。

有没有一个优雅的方式来做到这一点?

感谢

回答

3

这不是一个具体的环答案,但我觉得你会更好,在这两个旧的Web服务和新的前使用反向代理Nginx的更换网站服务。

反向代理可以轻松响应不同的传入URL并透明地将它们传递给幕后的正确Web服务。这是一种灵活而强大的方法,随着您的服务的增长,这将允许使用多种分区的URL方案。

0

我多年来一直在做这件事情,在请求进来的情况下,它需要去两个不同的地方。 (关于微服务的队列咆哮和这里意想不到的后果的规律)我通常使用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})) 
    ...)