我开发了一个简单的 REST 风格的 Web 应用程序,由 2 个基本模块组成。
模块#1:服务器暴露 REST Web 服务,无状态,部署在 Tomcat 中
模块#2:REST 客户端
有一个部署了 Module#1 的 Tomcat 实例。
我想水平扩展它并在第二台机器上运行第二个 Tomcat。在负载平衡/集群方面,我是一个完整的新手,这就是我需要帮助的原因。不需要会话复制和故障转移。
我应该如何处理它?
我做了一项研究,这些是我看到的可能的方法:
1.无集群,无第三方代理。
我在第二台机器上运行第二个 Tomcat。由于我可以控制客户端和服务器,我可以在客户端提供一个非常基本的算法并随机选择一个主机,这将在 API 调用之前选择。不需要配置集群,也不需要提供第三方代理。是否有任何潜在的陷阱?这是正确的方法吗?
2.Tomcat集群
说到Tomcat集群配置,是不是说有2个Tomcat在单独的机器上运行,并且他们的配置说它们是一个集群?我需要一个单独的库,工具吗?Tomcat 就够了吗?我会像第一种方法一样运行 2 个进程吗?
3.Tomcat负载均衡器
Tomcat集群和Tomcat负载均衡器有什么区别?再次,我需要一个单独的库,工具吗?Tomcat 就够了吗?
4. 第三方代理
我找到了一些关于 HAProxy 之类的信息。这是否意味着,所有调用都经过它,代理决定选择哪个主机?这是否意味着除了两个Tomcat进程之外还会有第三个单独运行?假设我在两台不同的机器上有 2 个 Tomcat,这个代理在哪台机器上运行?
我应该选择哪一个?我误解了什么吗?文章,答案表示赞赏。