这个问题不是关于如何安装服务器和它的function,而是更多的devise问题。
所以我有一个MySQL服务器集群。
我也有一个DNSlogging“ data.example.com ”。
MySQL集群具有三个MySQL /查询节点 (应用程序连接到的集群的端点)。
在那之后是该集群的其余服务器(数据/pipe理)。
目标是把这个集群当作一个坚实的单位 (从外部的angular度来看)。
现在,一个外部应用程序(比如一个web服务器)想要在数据库上执行(写/读)。 这里是步骤:
1)parsingDNS“data.example.com”。
2)连接到IP(这是一个SQL节点)。
3)做工作。
出现的第一个问题 ,更容易的问题是:
如何通过单个DNS公开所有三个SQL节点?
– DNS服务器级别的循环法?
– 将该DNSlogging设置为指向SQL节点的三个IP?
第二个问题出现了,假设DNSparsing为10.0.0.7,它只是三个SQL节点之一: 如果该节点closures,该怎么办?
整个集群仍然很好,但现在尝试连接到该节点的应用程序将该集群视为“closures”,因为该节点确实已closures,因此我失去了“高可用性”。
所以我的问题很简单:
你会怎么做来解决这个问题? 请详细描述,复杂性并不吓倒我:)
请注意,我会在这里询问负载平衡或类似的东西,但我更愿意将这个问题保持“开放”,并听取更广泛的解决scheme。 谢谢!
高可用性通常使用所谓的VIP(虚拟IP地址)完成。 所以,这个IP应该与为每个集群节点分配的“ 静态 ”IP地址不同。 此VIP应该由您正在使用的高可用性解决scheme“ dynamic ”分配。 因此,在这种情况下,只有一个节点将为这些请求提供服务,如果该节点发生故障,则高可用性软件将把VIP分配给群集中的另一个节点。 这样,除了在从一个节点到另一个节点的故障转移期间的极less时间之外,您不会遇到停机时间。
如果您正在进行负载平衡,则需要有两个负载平衡节点和至less两个群集节点。 VIP将被分配到其中一个负载平衡节点。 应用程序请求将通过其中一个负载均衡节点指向群集节点。
需要担心的一个重点是群集节点间的数据同步,特别是在负载平衡情况下。 例如,假设您正在写入一个节点并从另一个节点读取。 当然,除非有一个好的同步/负载均衡机制被应用,否则这是行不通的。
编辑:
VIP通常是由高可用性软件分配给集群中主动节点的私有IP地址。 它只是一个与每个节点的原始IP不同的IP地址。 它可以简单地从同一个子网分配。 如果应该通过NATing使群集节点可访问,则公共IP地址应该NAT到VIP。 无论哪个节点是主动节点,这对于访问服务都很重要。
您将需要部署一个负载平衡器来分割您的SQL节点上的负载,将您的DNSparsing为该负载平衡器的IP地址