【发布时间】:2016-01-11 14:40:21
【问题描述】:
这是我的用例
我们有一个服务“foobar”,它有两个版本 legacy 和 version_2_of_doom(都在运行中)
为了实现从 legacy 到 version_2_of_doom 的转换,我们希望第一次将两个版本放在一起,并收到 POST 请求(因为这里只有一个 POST api 调用)两者都有。
我看到如何做到这一点的方式。会是
-
修改处理程序开头
legacy的代码,以便将请求复制到version_2_of_doomfunc(w http.ResponseWriter, req *http.Request) { req.URL.Host = "v2ofdoom.local:8081" req.Host = "v2ofdoom.local:8081" client := &http.Client{} client.Do(req) // legacy code
不过好像没有这么简单
http: Request.RequestURI can't be set in client requests. 失败
是否有众所周知的方法来执行这种操作(即不接触)http.Request 到另一个服务器?
【问题讨论】:
-
你不需要为每个请求创建一个新的
http.Client,它们可以被多次使用。
标签: go