java - Tomcat集群新手

标签 java tomcat web-applications cluster-computing high-availability

<分区>

我正在研究 tomcat 的高可用性。
我读到你可以在 Tomcat 中做集群,你可以使用 Apache http 作为负载平衡器。
我无法理解以下内容:
应该作为负载平衡模块的 Apache http 应该安装在与 Tomcat 服务器不同的机器上吗?
例如。如果我有 3 个 tomcat 服务器作为一个集群,是否应该在所有 3 个中安装 http?或者在其他服务器上?
如果我使用 Linux 设施来实现高可用性,又有什么区别?

最佳答案

一般来说,没有这样的限制,Apache 应该在单独的机器上实现。在实践中,您可能想要这样做。

Apache 可以用作负载均衡器,这样所有的请求都会到达 apache,它会根据策略将查询分派(dispatch)给某个 tomcat(决定何时分派(dispatch)给哪个 tomcat 的算法,例如循环法) .

应该安装一个apache,它可以与3个tomcats(任意数量的tomcats)通信。

顺便说一句,它没有必要像 Apache 这样基于软件的负载均衡器,您可以使用硬件负载均衡器。


Apache = httpd 它是一个 Web 服务器,可以接受 http 请求并(除其他事项外)将它们分派(dispatch)给 tomcat。

Tomcat 也是一个用 java 编写的网络服务器,旨在运行 Java 网络应用程序。

所以整体架构应该是这样的:

client --> Apache (host a) ________  tomcat1 (host b)
                          |________  tomcat2 (host c)
                          |________  tomcat3 (host d)

至于硬件负载平衡器 - 这些是各种制造商的盒子,如 Sisco、F5 等。

希望对你有帮助

关于java - Tomcat集群新手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13561273/

相关文章:

java/spring-在 org.springframework.context.support.AbstractApplicationContext 处获取 NoClassDefFoundError

tomcat - JBoss/Tomcat/Struts2 服务器启动时间点?

Eclipse 和 Tomcat 不能作为服务器运行

java - 如何在开发环境中使用自定义 JSP 标签

javascript - 使用 Ember.js,处理键盘事件的常见模式有哪些?

java - 如何检查 bean 属性是否存在 win BeanUtils 或类似的?

java - Java中的文件截断操作

java - 通过创建线程池在运行 JUnit 测试脚本时在线程之间添加延迟

java - 在 Java 中获取应用程序服务器名称或 ip 和端口

python - 属性错误: 'Anonymousidentity' object has no attribute 'name'