我正在加载测试具有4个节点的Tomcat Web应用程序。这些节点通过Nginx配置ip_hash:
ip_hash;
server example:8888 weight=2 max_fails=3 fail_timeout=10s;
server example:8888 weight=4 max_fails=3 fail_timeout=10s;
server example:8888 weight=2 max_fails=3 fail_timeout=10s;
server example:8888 weight=2 max_fails=3 fail_timeout=10s;
无论如何,我使用Gatling进行负载和性能测试,但每次开始测试时,所有流量都被路由到一个节点。只有当我将负载平衡节点更改为round_conn的循环时,才会划分流量。但是这个应用程序需要一个持久节点来完成工作。
有没有办法让Gatling在运行期间将流量路由到所有4个节点?也许有安装配置?我现在正在使用这个setUp:
setUp(scenario1.inject(
atOnceUsers(50),
rampUsers(300) over (1800 seconds),
).protocols(httpConf)
)
谢谢!
答案 0 :(得分:0)
ip_hash;
指定组应使用负载平衡方法,其中请求根据客户端IP地址在服务器之间分发。
您应该使用sticky
:
启用会话关联,这会导致来自同一客户端的请求传递到一组服务器中的同一服务器。
修改强>
是的,我没有看到它只适用于nginx :(
我发现这篇文章(也许有帮助......):
https://serverfault.com/questions/832790/sticky-sessions-with-nginx-proxy
参考:https://bitbucket.org/nginx-goodies/nginx-sticky-module-ng
还有旧版本nginx的模块版本:
http://dgtool.treitos.com/2013/02/nginx-as-sticky-balancer-for-ha-using.html