如何通过会话复制查找集群 Tomcat 的限制

如何通过会话复制查找集群 Tomcat 的限制

我正在实验性地开发 Tomcat 集群,因为它可能是我们的生产环境所需要的。它必须具有可扩展性、高可用性,并且支持尽可能多的并发用户。因此,我创建了一个这样的测试环境:

           HaProxy
           /     \
          /       \
Tomcat 1 (7.0)  Tomcat 2(7.0)
  Redis 1         Redis 2

Tomcat 在 HaProxy 上实现负载平衡,并通过 Redis 复制会话。每个 Redis 通过 sentinel 相互连接。最后,每个 Tomcat 和 Redis 包都是一台机器。例如,Tomcat 1 和 Redis 1 位于同一台服务器上。

在这个实验结束时我有一些问题,

  1. 我如何突破这个实验室的极限?我尝试在 tomcat 上运行基本应用程序,但我需要了解这个集群的极限才能发现潜在的故障转移点。
  2. 这个实验室的潜在弱点是什么?针对相同问题的最佳实践是什么?
  3. 使用 Web Logic 或 Wildfly 而不是 Tomcat 或使用 Tomcat 的默认 DeltaManager 或 BackupManager 的优点或缺点是什么?
  4. 我想尝试将节点内存复制到彼此。可以吗?如果可以的话,我想知道您的建议 :)

提前致谢。

答案1

您需要专注于应用程序测试,而不是 Tomcat(或任何应用程序服务器)测试。

发现被测系统的断点的过程称为压力测试,思路如下:

  1. 用一个负载测试工具创建一个代表正常应用程序使用场景的工作负载
  2. 建立基线健康指标监测JVMTomcat 的运行位置和底层操作系统。
  3. 从 1 个虚拟用户开始,逐渐增加负载,同时密切关注系统资源消耗。
  4. 当任何系统资源消耗指标(CPU、RAM、网络/磁盘 IO)超过最大可用容量的 90% 时,系统将开始交换,JVM 将经常执行垃圾收集,应用程序响应时间将开始超过可接受的阈值水平,或者将开始出现错误 - 这就是所谓的"bottleneck"这就是您的应用程序能够服务的并发用户数(或每秒请求数)。

相关内容