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

标签 mysql mongodb scalability load-balancing

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

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

最佳答案

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

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

关于mysql - 为分布式数据库配置 Web 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10953702/

相关文章:

MongoDB 排序的地理边界框

node.js - Mongodb 复杂对象查询

sql - 提高改进的前序树遍历算法的可扩展性

design-patterns - 如何限制针对 Azure 中的队列工作的每个作业/租户的辅助角色

Redis 客户端广播问题(在 Socket.IO 的上下文中)

Mysql主主复制问题

php - 单个查询,其中查询中的乘法并获取该乘法的总和

mongodb - 从 fs.files 中投影一列

python - MySQL 客户端、Django

mysql - SOLR DIH 在同一个 MySql 表上添加具有多个查询的文档