当前位置: 首页 > 知识库问答 >
问题:

如何在支持粘性负载平衡的Web应用程序上进行性能测试?

墨宜人
2023-03-14

嗨,

我读了很多博客和教程。我不知道如何在基于cookie的粘性Web应用程序上进行性能测试,该应用程序位于反向代理负载均衡器后面。我有3个支持的应用程序服务器,为购物车的同一个实例提供服务。负载均衡器位于它们前面并引导流量。

问题:当我发送HTTP请求进行性能分析时,负载平衡器(通过cookie跟踪客户端ip)将HTTP请求重定向到分配给的同一后端服务器。我可以选择使用IP欺骗,但当后端服务器分布在广域网而不是局域网时,它就不起作用了。此外,每个后端服务器都有自己的公共IP地址,并且位于防火墙后面。

问:在这种情况下,是否有办法将 Jmeter 配置为负载测试。还是有其他更好的解决方案

非常感谢您的想法和贡献。

问候

共有1个答案

和弘博
2023-03-14

以下是一些可能的解决方法

  1. 绕过负载均衡器,将不同的 JMeter 实例直接指向不同的后端主机。
  2. 使用分布式测试,在云中的某个位置具有JMeter节点,即亚马逊微型实例是免费的。您可以使用 JMeter ec2 脚本来简化安装、配置和执行。
  3. 尝试使用 DNS 缓存管理器,它为每个 JMeter 线程启用单独的 DNS 解析。
 类似资料:
  • 我有一个弹性Beanstalk应用程序,最初配置为使用经典的负载平衡器。我发现这在通过WebSocket连接时会导致错误。因此,我将应用程序配置为使用应用程序负载平衡器,因为我被告知ALB支持WebSockets。然而,它们似乎没有:当我试图通过WebSocket连接到我的ALB时,会出现完全相同的错误。 ALB真的支持WebSocket吗?AWS文件在这方面存在矛盾。此页面表示它只支持HTTP和

  • 我们正在使用JMeter对apis进行负载测试。如果想在具有JavaScript渲染的Web应用程序上执行负载或压力测试,可以使用带有Selenium的JMeter选项或任何其他选项,例如与任何性能工具集成的Selenium功能测试。 请建议。 已经讨论过/提到了以下问题:如何在单页面(web)应用程序上进行“终端客户端”性能测试?

  • 这是我的第一个负载平衡问题。 我已经编写了一个简单的express应用程序来了解负载平衡是如何工作的。我还看了一些类似于的东西。如果我必须使用Nginx进行负载平衡,那么我是否应该在4个不同的docker容器中运行4个不同的express实例,然后使用Nginx在它们之间进行负载平衡,而Nginx位于自己的容器中? 我说得对吗?我有点困惑

  • AWS推出了应用程序负载平衡器,可以进行基于路径的路由。是否可以将经典负载平衡器放在应用程序负载平衡器之后。 示例:假设我们有两个经典的负载平衡器。应用程序负载平衡器将流量路由到所有url(如应用程序负载平衡器/前端)的第一个经典负载平衡器,并将流量路由到所有url(如应用程序负载平衡器/后端)的第二个经典负载平衡器* 目前,似乎我们只能将主机置于应用程序负载平衡器之后。是否可以将负载平衡器置于应

  • 我正在努力弄清楚我是否正确理解负载平衡。我有一个用XAMPP开发的web应用程序。基本上我有一个数据库和应用程序本身。之后,我在运行Ubuntu的VPS中的Digital Ocean中托管了该应用程序,并在其中安装了ApacheMySQL和PHP。现在我想了解负载平衡的要求。 从我到目前为止所读到的关于负载平衡的内容来看,您至少需要3台服务器,其中一台将是Apache或NGINX,并打开相应的负载

  • 在我的AWS帐户中,我当前有一个网络负载平衡器(TCP),它指向两个可用性区域(web服务器)上的两个Ec2实例,每个可用性区域都运行一个tomcat,它指向一个Ec2实例,即应用程序服务器/数据库。 在NLB上,粘性会话是启用的,因此当我在单个选项卡上从Chrome访问网络服务器时,一切正常,我的所有用户流量都发送到单个网络服务器。当我打开一个新选项卡时,似乎启动了一个新会话,我的用户流量可以发