对第二个端点的REST请求重复

时间:2013-05-01 20:55:30

标签: http rest apache-camel

为了测试REST服务在负载下的运行方式,我希望将生产数据发送到两个服务端点,一个生产服务和一个测试服务。我希望忽略测试服务的响应,以便客户端不知道它的请求被发送到2个服务。我想在客户端和服务之间做一些事情,这样我就不需要对其中任何一个进行任何更改,只需要一些额外的“过滤器”服务,流量将通过该服务然后在未受影响的情况下传递请求。向测试服务发送重复请求。有人建议我可以使用Apache Camel做到这一点,但它有点压倒性的我不想开始学习Camel如果我的目标不可能。有没有人使用Camel或其他方法获得类似的东西?

1 个答案:

答案 0 :(得分:1)

这可以通过定义一个jetty或一个cxf端点来完成,该端点充当代理将请求路由到另外两个http端点,即REST服务。

from("jetty:http://somehost:8282/xxx").
     to("http://prod:8181/rest/service/xyz").
          to("http://test:8182/rest/service/xyz");

客户端可以将负载发送到http://somehost:8282/xxx。客户端不会意识到它被路由到两个服务。

注意:如果您通过上述路由或其他代理/路由器方法将客户端请求路由到两个服务,则测试不会产生实际的加载结果。因为代理/路由本身会引入一些延迟。相反,我建议使用一些负载测试工具来生成负载,并分别直接触发prod和测试端点。

例如,apache ab基准工具。请查看thisthis