标签 负载均衡 下的文章

实现高可用的两种方案与实战


我之前在一片文章 用Nginx+Redis实现session共享的均衡负载 中做了一个负载均衡的实验,其主要架构如下:

round.png

debian1作为调度服务器承担请求分发的任务,即用户访问的是debian1,然后debain1把请求按照一定的策略发送给应用服务器:debian2或者debain3,甚至更多的debain4、5、6......

状态数据可以放在外部的分布式缓存服务分布式数据库服务中,这样应用服务本身就是无状态的,所以机器增减都是很容易的,应用的高可用是有保证的(对于有状态的高可用不仅要注意机器增减与切换、还要注意备份冗余数据一致性等问题)。但是当时忽略了一个地方,那就是调度服务器debian1本身的高可用性没有考虑到,存在单点问题。

高可用的首要想法就是双机热备,故障时自动切换,所以我们要给debian1加一个备机debain1'。我现在按照自己的知识粗浅的把解决方案分为两类:客户端有感知的高可用对客户端透明的高可用,并分别挑选一个示例做一下实验。

注:下面实现高可用都用的是双机热备,为了方便,把调度服务器debian1简称为主机,把调度服务器debian1的备机debian1'简称为备机


用Nginx+Redis实现session共享的均衡负载


前言

大学三年多,也做个几个网站和APP后端,老是被人问到,如果用户多了服务器会不会挂,总是很尴尬的回答:“哈哈,我们的用户还少,到了服务器撑不住的时候,估计都上市了吧”。说是这么说,但是对于有强迫症的我,这个问题一直回响在我脑海里,久久不散啊。如今大四下了,终于有时间来深入了解一下这个问题了。

貌似解决大访问量的方案有硬件和软件两个大类的方法,硬件一般比较贵,学生党就不去考虑了。还是想想怎么用软件解决吧。于是乎,Google,Baidu,balabala... 搜到最多的词就是“均衡负载”,搭配的一般都是Nginx。找到了方向,那就撸起袖子干活吧。