- 主从机制,又叫主备机制,即 Master / Slave ,一共有两个进程:主进程 和 备用进程。主进程提供服务,而备进程就是备用着,默默的付出,在背后不断接收主进程的数据,等待主机挂了之后取而代之(啊这…… 司马昭之心,路人皆知啊)。
- 因此在主机还存活的情况下,备用机的唯一使命就是同步主机的数据,不对外会提供服务。
- 如上图所示,用户不断和主进行通讯,从不断从主那里同步数据。一旦主宕机了,则迅速切换从为主,然后在最短时间内把主启动起来。
就好比刚才故事里小T是主,他的老婆小D是从,平时每天等老公下班回家给他分享知识。等老公倒下了,她就代替老公去上班,继续养家糊口,直到老公出院。夫妻间组成了 Master / Slave 模式。
- 常见的数据库 MYSQL 和 缓存 Redis 都有 主从模式。
3、集群
1)集群概念
- 集群,即多个进程通过网络联系在一起,它们提供相同的服务,任何一个进程都可以向客户端提供服务,某个进程挂了,可以通过数据迁移将用户数据迁移到另一个进程,只要这些进程没有全部挂掉,那么这个集群就是能正常工作的。
- 例如上图中,集群中总共五个进程,只有当五个进程都挂了,整个系统才会完全瘫痪。
就好比小T招募了一批程序员来帮他干活,这样他就不用干活了。这些程序员组成了一个集群。
2)节点的概念
- 节点,node,一般理解为一个进程,或者一台物理机,下文也会返回提到节点的概念。节点之间通过网络联系起来,组成了集群。
每个程序员都是集群中的一个节点。
4、负载均衡
- 用户连接网络集群中的进程,如果没有做策略,可能会出现一种情况就是:有些进程连接用户巨多,而有些进程很少有用户连接,这样就造成某些进程的负载过大,而影响正常服务器的运行。
- 基于这样的考虑,我们需要设计一些均衡策略,让用户能够均匀的分布到不同的进程上,这就叫负载均衡。
就好比,刚才每个程序员轮流加班,三班倒,这样整个系统还是能运作下去。
5、分布式系统
- 多个提供不同服务的集群组成一个完整的高可用架构,就是基础的分布式系统。
- 如上图所示,拥有不同功能的服务集群组成的一个大的系统就是分布式系统。
- 分布式系统需要满足 高可用、高可靠、高性能、高并发。
而刚才小T成立的公司,就好比一个分布式系统。
- 接下来,我们对 高可用、高性能、高并发、高可靠进行一些简单的解释。
1)高可用
- 如果一个服务能够正常使用,那么我们称之为 “可用”,比如你现在能看到这篇文章,说明网站处于 “可用” 状态。
- 可用性定义为在足够长的时间里,一个服务可用的时间,服务可用时间越长越好。
- 一般用可服务时间除于总时间算出一个百分比,用百分比作为度量。比如一个服务如果有 5 个 9 的可用性,指的就是一年里 99.999% 时间里服务都是可用的。
- 按照年度可用性,来看一个表格:
可用时间百分比 | 可用时间(天) | 全年故障(天) |
---|