- 一、系统高可用(High Availability)
- (1) 啥是 “高可用” ?
- (2) 集群
- ① 主备模式
- ② 主从模式
- ③ 高可用模式
- ④ 总结
- (3) 分布式
- (4) 微服务
- (5) 分布式和微服务的对比
- 二、分布式的基本概念
- 三、分布式协调服务
高可用的目的:保障业务的连续性。实现在用户眼里,业务永远是正常对外提供服务的。
一个 SpringBoot 项目(apple.jar)被部署到了服务器上运行。可向其发送网络请求获取网络资源。随着请求数量的逐渐增多,服务器宕机(死机)的可能性也越来越高。 若一个服务器宕机会导致该服务器上的某个系统直接无法被访问,则不是高可用的项目,便产生了单点故障。单点故障:服务器与项目共生。服务器生,项目活;服务器挂,项目死。
高可用希望实现两个目标:
① 系统的健壮性,不允许出现单点故障
② 提高系统的处理能力,保证系统的运行效率
服务器就是计算机,计算机就是服务器。
高可用:项目依赖于多台服务器,某台服务器宕机不会导致项目无法提供服务
集群(cluster):一组 相互独立的、通过高速网络互联的计算机的集合。
- 多台计算机构成一个组,它们被一种 单一系统的模式 加以管理
- 一个客户向集群服务器发送请求时,集群(多台计算机的集合)像是一台独立的服务器一样
- 集群模式:多台计算机的组合方式
- 多台服务器,其中有 1 台为主服务器。正常情况下由主服务器提供服务,主服务器处于 active 状态
- 除主服务器之外的都是备用服务器。备用服务器平时不提供服务,处于 standby(待命、后备人员)状态
- 若主服务器出现故障、若主服务器宕机,挑选众多备用服务器中的一台作为主服务器继续提供服务
- 多台服务器,每台服务器都提供服务
- 服务器的功能(角色)可能不一样
Queries-per-second:单个进程每秒请求服务器的成功次数(每秒查询率)
- 多台服务器,每台服务器的角色和功能都一样
主备集群:避免单点故障
主从集群:避免单点故障;提高并发度;吞吐量
高可用集群:避免单点故障;提高并发度;吞吐量
-
分布式是一种系统部署的方式
上图部署应用的方式是【单机部署】 -
应用服务器(Tomcat)和数据库服务器(MySQL)部署在同一台服务器上
-
Tomcat 和 MySQL 沟通的网络开销很小
-
Tomcat 和 MySQL 共享服务器的内存空间
上图部署应用的方式是【分布式部署】
- 服务器之间通过网络访问(存在网络开销)
- 应用服务(Tomcat)和数据库服务器(MySQL)被部署在不同的服务器上
- Tomcat 和 MySQL 独享自己所在服务器的内存空间
- 微服务是系统的一种架构设计方式
- 微服务一定是分布式,但分布式不一定是微服务
上图把一个应用全部的功能置于同一个项目、同一个应用、同一个 jar 包中,这是单体应用。
上图根据模块进行划分,每个模块通过服务之间的网络调用进行访问,是微服务架构。
① 单体架构所有的模块全都耦合在一块。代码量大,维护困难。微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。
② 单体架构所有的模块都共用一个数据库,存储方式比较单一。微服务每个模块都可以使用不同的存储方式(如有的用redis,有的用 MySQL),数据库也是单个模块对应自己的数据库。
③ 单体架构所有的模块开发所使用的技术一样。微服务每个模块都可以使用不同的开发技术,开发模式更灵活。
二、分布式的基本概念 三、分布式协调服务 暑期编程PK赛 得CSDN机械键盘等精美礼品!



