具有镜像数据库和文件系统的多个VPS

前端之家收集整理的这篇文章主要介绍了具有镜像数据库和文件系统的多个VPS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近对VPS集群产生了兴趣,尝试建立一个多VPS设置似乎是一个好主意,我将在下面介绍.它不是真正意义上的生产用途,而是更多的实验,以提高多服务器系统的相关技能和知识.但是由于我缺乏专业知识,我需要一些一般信息.

设置说明

由于我每天处理使用Redis作为数据存储区的Node.js应用程序,因此它将作为设置的基础.我的想法基本上是至少2 VPS设置.每个服务器将运行相同的节点服务(假设两个服务器上同时使用5个不同的服务),每个VPS也运行一个Redis实例,Node实体使用该实例来存储数据.此设置的目的是在两个服务器之间启用数据镜像(如果第一个服务器中的节点服务#1向Redis添加了某些内容,则更改也应反映在第二个服务器中).这也意味着上传文件等应该在两台服务器上进行镜像(从某种意义上说,数据存储和文件系统的变化必须反映在另一台服务器上).

理想情况下,这将实现在服务器之间共享负载的简单负载平衡器,并且在单个服务器发生故障的情况下,其他服务器将继续运行并因此保持节点服务联机.需要镜像更改的速度不高,即使是一分钟的延迟也不重要.但是,如果用户正在主动更新数据,则必须向他显示他刚刚更改的数据(在某种意义上,他必须以某种方式被迫与服务器通信,他更新了数据,因为更改可能没有镜像到其他服务器).

问题

>实现负载平衡的合理方法是什么?我听说
关于使用一些DNS魔术,但不是真的了解它.只需更新DNS
记录太慢,因为它们被缓存在多个地方.我也是
阅读有关使用一个处理平衡的“主代理”服务器的信息
其他服务器之间.这似乎有点风险,因为如果主要
服务器失败,一切都将脱机.
>如何在不同的VPS上镜像部分文件系统
上传的图像等将出现在两台服务器上.有没有
广泛的软件选项,或者是一个检测的简单脚本
上传然后在不同服务器上复制这些文件
正好?
> Redis甚至支持我描述的那种镜像吗?我只是
发现有关主从复制的信息,如果我
正确理解,意味着更新是单向的,在
感觉到主设备可以更新从设备,但从设备无法更新
大师.

谢谢!

解决方法

可以仅对问题1提供帮助.

有几个方法可以实现负载平衡和故障转移(最简单的第一个)

> DNS循环(负载平衡和故障转移)
>动态DNS(故障转移)
>代理(负载平衡和故障转移)
>本地IP故障转移(故障转移)
> BGP Anycast(负载均衡和故障转移)

DNS负载平衡很简单:假设您有两台(或更多)IPs为1.1.1.1和2.2.2.2的服务器.
要设置DNS负载平衡,请为主机名创建DNS记录,例如www.example.com:

www.example.com. A 1.1.1.1
                 A 2.2.2.2

(此外,DNS服务器应配置为以循环模式提供此名称,但它通常是默认值).

现在,每个到www.example.com的DNS请求都将以伪随机顺序回复两个地址,因此您的客户端可能会在服务器之间平均分配.

没有必要经常更新记录,一旦设置它永远有效.它还提供了一定程度的故障转移,就好像一台主机停机,浏览器超时然后尝试第二台主机,但可能会有相当大的延迟,用户也不会喜欢它.

动态DNS.可能添加到1.,一旦主机发生故障,动态更新DNS记录并删除对故障主机的引用,但DNS系统中的大量缓存会导致我上面提到的某些时期的性能下降.使用非常低的TTL可以改善情况,但仍然存在客户端操作系统/浏览器中不会考虑TTL的缓存,也有些ISP也不会忽视低TTL.无论如何,底线 – 这是实现平衡和基本故障转移的非常简单且经济实惠的方式.

代理.简单而流行的负载均衡.要消除单点故障,您需要将其与其他方法结合使用.

IP故障转移.作为2.的补充,为了应对代理本身的故障,在“IP故障转移”设置中使用的两个代理 – 基本思想是有一个IP地址通常出现在host1上,但一旦失败,host2检测到它并且IP到来在host2上.寻找linux“heartbeat”项目. (您也可以在没有代理的情况下自行故障转移服务器,但您不会进行平衡).通常,两台PC必须位于同一子网(同一数据中心).

选播.想法是将路由通告到几个物理位置的单个IP地址(实际上是单个子网).您需要自己的/ 24子网,以及配置BGP的能力.任播通常用于DNS服务器.持久性TCP连接存在困难,因此更容易适应UDP和DNS,但有时仍然用于Web.

这是基本的想法.如您所见,每种方法都有局限性和复杂性.如果它不够复杂,你可以建立任何可以想象的上述方法的组合:)

猜你在找的MsSQL相关文章