Mos*_*hel 7 http replication testing request apache-2.2
我们正在开发一个新服务器来替换旧服务器,并希望在测试前后并排放置 - 以便我们可以比较最终结果并找出差异。
两个服务(旧的和新的)的输入都是 HTTP 请求(如果不是全部是 GET,但也可能是 POST),我们需要将到达旧服务器的流量复制并发送到新服务器(而不是替代)。当然,我们需要对请求中的主机名和端口进行一些轻微的重写,以避免无限循环。
旧服务器在 Apache (PHP) 上运行,新服务器是 Jetty(Java、Dropwizard)
必须有办法做到这一点,我猜我找不到谷歌搜索的关键字......
我们最终选择的是使用 Gor(现在的 GorReplay)https://github.com/buger/goreplay
该解决方案允许在原始主机上安装一个侦听器,它的作用是记录任何传入的 HTTP 请求,这是在不修改它或阻止生产服务器处理它的情况下完成的。
然后,它将这些请求推送到 Gor 重放服务器,该服务器可以根据传入请求处理各种有用的分割/增加负载的逻辑 - 您可以将一定百分比的请求发送到开发服务器,或者将请求相乘以创建模拟(但来自真实流量)您的临时环境上的负载,或两者......
遗憾的是,这是在服务器级别,因此您必须在每个生产服务器上安装才能获得所有流量,但您不必这样做,它为我的问题中提出的问题提供了一个很好的解决方案。