我有这个想法:
在每台服务器上:(它们都设置相同)
- 一个免费的数据库,如MySQL或PostgreSQL。
- Tomcat 6.x 用于托管基于 Servlet 的 Java 应用程序
- Hibernate 3.x 作为 ORM 工具
- 业务层的Spring 2.5
- 表示层的Wicket 1.3.2
我在服务器前面放置了一个负载均衡器,并在我的主负载均衡器出现故障时更换了一个负载均衡器。
我使用Terracotta在服务器之间复制会话信息。如果一台服务器出现故障,用户应该能够在另一台服务器上继续他们的工作,理想情况下就像什么都没发生一样。剩下要“解决”的是(因为我还没有实际测试过这个,例如不知道我应该使用什么作为负载平衡器)是需要的数据库复制。
如果用户与应用程序交互并且数据库发生更改,则必须将该更改复制到其他服务器机器上的数据库服务器。我该怎么做呢?我应该使用 MySQL PostgreSQL 还是其他东西(理想情况下是免费的,因为我们的预算有限)?上面的其他事情听起来合理吗?
澄清:我首先集群以获得高可用性,我希望能够添加服务器并同时使用它们以获得高可扩展性。