我搜索了很多问题,但没有找到真正回答我问题的答案,首先是一些背景信息:
我非常了解MySQL复制和集群,但以下是我在这些解决方案方面的问题:
1)在复制(如果大师失败 )中,整个网格失败或长期停机
2)在集群中,我首先认为,为了添加另一个节点,还必须有停机时间,但是再读一次文献资料,我就不太确定了
Q1:能否请人澄清“滚动重新启动”是否实际上意味着任何连接到网格的应用程序的停机时间?
由于我的印象是,停机是不可避免的,在我看来,3d应用程序可以解决这个问题: PHP连接到3d应用程序,3d App插入/更新/删除一个数据库以快速返回last_insert_id,PHP继续其过程,3d应用继续从其他数据节点插入/更新/删除。在这个场景中,每个DB不被复制或集群,它们是独立的DB服务器,3d应用程序是一个守护进程。
Q2:,有人知道这样的应用吗?
在上面的场景中,PHP端的选择会随机选择一个DB服务器(为了负载平衡)
谢谢你的时间和智慧
发布于 2011-08-02 07:44:49
滚动重启基本上跟踪一系列节点并逐个重新启动它们。它确保在重新启动之前没有任何用户登录到该节点,然后重新启动,然后转移到下一个节点或服务器,等等。所以是的,您的服务器将被重新启动,但按顺序进行,因此,如果您有一个具有n个节点的集群设置,那么每个节点都会逐个重新启动,因此要么删除停机时间,要么限制它。
我建议将PHP脚本与NoSQL数据库集成起来,您可以为这些数据库设置集群,并且几乎没有延迟。如果您仍然需要一个MySQL同步数据库,那么您也可以尝试将NoSQL设置为主服务器,并将其复制到MySQL从站,这也是可能的。
发布于 2011-08-02 08:27:41
这里有很多问题。
在主从应用程序中没有用于在主程序失败时提升从服务器的隐式功能。自己编写脚本是微不足道的。
对于主-主复制,这不是一个问题- OTOH,运行与许多节点,一个失败会增加数据集中的分歧。
第三个应用程序描述的许多功能都是由mysqlproxy实现的--尽管没有什么可以阻止您将功能构建到您自己的DB抽象层中(您可以通过异步消息/http调用或作为关闭函数放弃处理)。
https://stackoverflow.com/questions/6908644
复制相似问题