具有镜像数据库和文件系统的多个VPS
我最近对VPS集群产生了兴趣,尝试建立一个多VPS设置似乎是一个好主意,我将在下面介绍.它不是真正意义上的生产用途,而是更多的实验,以提高多服务器系统的相关技能和知识.但是由于我缺乏专业知识,我需要一些一般信息.
设置说明 由于我每天处理使用Redis作为数据存储区的Node.js应用程序,因此它将作为设置的基础.我的想法基本上是至少2 VPS设置.每个服务器将运行相同的节点服务(假设两个服务器上同时使用5个不同的服务),每个VPS也运行一个Redis实例,Node实体使用该实例来存储数据.此设置的目的是在两个服务器之间启用数据镜像(如果第一个服务器中的节点服务#1向Redis添加了某些内容,则更改也应反映在第二个服务器中).这也意味着上传的文件等应该在两台服务器上进行镜像(从某种意义上说,数据存储和文件系统的变化必须反映在另一台服务器上). 理想情况下,这将实现在服务器之间共享负载的简单负载平衡器,并且在单个服务器发生故障的情况下,其他服务器将继续运行并因此保持节点服务联机.需要镜像更改的速度不高,即使是一分钟的延迟也不重要.但是,如果用户正在主动更新数据,则必须向他显示他刚刚更改的数据(在某种意义上,他必须以某种方式被迫与服务器通信,他更新了数据,因为更改可能没有镜像到其他服务器). 问题 >实现负载平衡的合理方法是什么?我听说 谢谢! 解决方法可以仅对问题1提供帮助.有几个方法可以实现负载平衡和故障转移(最简单的第一个) > DNS循环(负载平衡和故障转移) DNS负载平衡很简单:假设您有两台(或更多)IPs为1.1.1.1和2.2.2.2的服务器. 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. 这是基本的想法.如您所见,每种方法都有局限性和复杂性.如果它不够复杂,你可以建立任何可以想象的上述方法的组合:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |