我有一个相当简单的网站获得200K点击/天(3-5点击/秒)使用灯配置。主机有点不稳定(读:便宜),所以我们想添加第二个主机来保证正常运行时间(我不认为这是关键任务,但更多的是防止恼人的)。
MySQL的空闲速度约为200QPS,有时峰值为450。
我对master-master和maatkit设置有一些经验,所以我打算在第二个位置复制站点,使用master-master复制,并使用maatkit和监控从滞后等验证数据。
然而,在阅读所有关于这种设置的可怕警告时,我试图评估这是否是正确的举措。什么是替代架构?
附加问题:假设您有两台服务器,一台在东海岸,一台在西海岸。什么是对这些数据库进行负载平衡的合理策略?你会让西海岸的apache服务器访问东海岸的mysql吗?这真的是一种选择吗?我以为延迟会毁了性能...
有什么想法吗?蒂娅·迈克
发布于 2009-06-20 08:23:50
美国的跨度约为50ms,因此假设每个http查询要执行40-90个mysql查询,您可以预期http查询的延迟至少会增加2-4.5秒。这忽略了传输任何大型有效负载所需的时间。你不会想为这个应用程序做跨洲的mysql。
避免跨大陆mysql查询的另一个原因是,两个主数据库可能不同步,因此,如果您在两个数据库之间进行循环查询,用户可能会看到不一致的数据并感到困惑。但是,如果您的本地数据库出现故障,回退到远程数据库是合理的。在这种情况下,您还需要将流量从本地the服务器转移出去,以避免前面提到的延迟。
您需要确保用户坚持使用相同的apache服务器,以便他们获得一致的数据视图。一种简单的方法是将用户从www.yoursite.com重定向到server1.yoursite.com和server2.yoursite.com,确保您的所有URL都是相对的。如果一台服务器宕机,您可以重定向DNS,在此之前,用户可能会一直刷新www.yoursite.com (这将用作DNS取整),直到他们获得另一台服务器。这样做的一个危险是用户会将server1.yoursite.com加入书签。
发布于 2009-10-03 05:22:56
可以使用活动备用方法来保证正常运行时间,在同一site.You上使用虚拟IP甚至可以将不同的站点配置为活动备用站点。地理冗余是另一个问题。
https://stackoverflow.com/questions/1020469
复制相似问题