为分布式数据库配置Web应用程序

时间:2012-06-08 17:52:38

标签: mysql mongodb scalability load-balancing

我已经阅读了MongoDB的复制docs和MySQL的集群page但是我无法弄清楚如何配置我的网络应用程序以连接到数据库。

我的应用程序将具有连接信息,数据库主机,用户名,密码等,但是,即使有多服务器功能,我是否需要一个具有固定IP的大主机来分配服务器的负载?那么,我该如何防止单点故障?这个问题有什么共同的方法吗?

1 个答案:

答案 0 :(得分:2)

MongoDB的replica sets等功能旨在实现自动故障转移和恢复。如果配置正确,这些将有助于避免数据库级别的单点故障。你不需要一个单独的“大师”来分配负载;这是副本集提供的要点。您的应用程序使用数据库驱动程序进行连接,通常无需了解各个副本的状态。对于MongoDB中的关键写入,您可以请求驱动程序执行“安全”提交,该提交要求将数据确认写入最少数量的副本。

要全面隔离服务器故障,您仍然必须考虑其他因素,例如磁盘,计算机或网络设备的物理故障以及提供适当的冗余。例如,您的副本集应分布在多个服务器或实例上。如果所有这些实例都在同一个物理主机托管设施中,那么您的单点故障仍然可能是托管设施失去电力或网络的不太可能(但可能)的情况。