码农翻身之——分布式,集群,负载均衡
- 分布式:将不同的业务分布在不同的地方,这就构成了一个分布式的系统。(如下图所示)
假设由三个系统A、B、C构成的一个分布式系统(A作为主系统),那么会存在如下的问题——系统A是这个分布式系统的“脸面”,用户直接访问,当访问量大的时候要么是速度慢,要么直接挂掉,并且系统A只有一份,所以会引发单点失败。
- 集群:将上述A系统部署好几份(如下图的3个服务器),每一份都是系统A的一个实例,对外提供同样的服务,这样就算其中一个挂掉,还有另外两个。这三个服务器上的系统组成一个集群(Cluster)。
问题——如果所有人都访问服务器1.1,那么服务器1.1会被累死,剩下的两个闲死,成了浪费钱的摆设。
- 负载均衡:尽可能的让上述三个机器上的系统A工作均衡一些,比如有3万个请求,那就让3个服务器各处理1万个(理想状况下),这就叫负载均衡。
问题——这个负载均衡的服务器虽然工作内容很简单,就是拿到请求,分发请求,但是它还是有可能挂掉啊, 单点失败还是会出现。
没办法,只好把负载均衡也搞成一个集群, 不过和系统A的集群有两点不同:
1. 这个新的集群中虽然有两个机器,但我们可以用某种办法,让这个集群对外只提供一个IP地址, 也就是说用户看到的好像只有一个机器。
2. 同一时刻,我们只让一个负载均衡的机器工作, 另外一个原地待命。 如果工作的那个挂掉了,待命的那个就顶上去。
(ps:摘自码农翻身公众号)