0

为了测试 REST 服务在负载下的执行情况,我想将生产数据发送到两个服务端点,一个生产服务和一个测试服务。我希望忽略来自测试服务的响应,因此客户端不知道它的请求正在发送到 2 个服务。我希望在客户端和服务之间有一些东西,这样我就不需要对两者进行任何更改,只需有某种额外的“过滤”服务,流量将通过该服务,然后将请求原封不动地传递,但也向测试服务发送重复请求。有人建议我也许可以使用 Apache Camel 来做到这一点,但它有点让人不知所措,如果我的目标无法实现,我不想开始学习 Camel。有没有人取得过类似的成绩,

4

1 回答 1

1

这可以通过定义作为代理将请求路由到其他两个 http 端点(即 REST 服务)的 jetty 或 cxf 端点来完成。

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

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

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

例如,apache ab 基准测试工具。看看这个这个

于 2013-05-02T03:19:21.547 回答