【ZooKeeper】① 分布式的基本概念

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 一个 SpringBoot 项目(apple.jar)被部署到了服务器上运行。可向其发送网络请求获取网络资源。随着请求数量的逐渐增多,服务器宕机(死机)的可能性也越来越高。 若一个服务器宕机会导致该服务器上的某个系统直接无法被访问,则不是高可用的项目,便产生了单点故障。单点故障:服务器与项目共生。服务器生,项目活;服务器挂,项目死。

一、系统高可用(High Availability)

(1) 啥是 “高可用” ?

高可用的目的:保障业务的连续性。实现在用户眼里,业务永远是正常对外提供服务的。
在这里插入图片描述
一个 SpringBoot 项目(apple.jar)被部署到了服务器上运行。可向其发送网络请求获取网络资源。随着请求数量的逐渐增多,服务器宕机(死机)的可能性也越来越高。 若一个服务器宕机会导致该服务器上的某个系统直接无法被访问,则不是高可用的项目,便产生了单点故障。单点故障:服务器与项目共生。服务器生,项目活;服务器挂,项目死。

高可用希望实现两个目标:
① 系统的健壮性,不允许出现单点故障
② 提高系统的处理能力,保证系统的运行效率

(2) 集群

服务器就是计算机,计算机就是服务器。

高可用:项目依赖于多台服务器,某台服务器宕机不会导致项目无法提供服务

集群(cluster):一组 相互独立的、通过高速网络互联的计算机的集合。

  • 多台计算机构成一个组,它们被一种 单一系统的模式 加以管理
  • 一个客户向集群服务器发送请求时,集群(多台计算机的集合)像是一台独立的服务器一样
  • 集群模式:多台计算机的组合方式

① 主备模式

  • 多台服务器,其中有 1 台为主服务器。正常情况下由主服务器提供服务,主服务器处于 active 状态
  • 除主服务器之外的都是备用服务器。备用服务器平时提供服务,处于 standby(待命、后备人员)状态
  • 若主服务器出现故障、若主服务器宕机,挑选众多备用服务器中的一台作为主服务器继续提供服务

在这里插入图片描述

② 主从模式

  • 多台服务器,每台服务器都提供服务
  • 服务器的功能(角色)可能不一样

在这里插入图片描述

③ 高可用模式

Queries-per-second:单个进程每秒请求服务器的成功次数(每秒查询率)

  • 多台服务器,每台服务器的角色和功能都一样

在这里插入图片描述

④ 总结

主备集群:避免单点故障
主从集群:避免单点故障;提高并发度;吞吐量
高可用集群:避免单点故障;提高并发度;吞吐量

(3) 分布式

  • 分布式是一种系统部署的方式

在这里插入图片描述
上图部署应用的方式是【单机部署】

  • 应用服务器(Tomcat)和数据库服务器(MySQL)部署在同一台服务器上
  • Tomcat 和 MySQL 沟通的网络开销很小
  • Tomcat 和 MySQL 共享服务器的内存空间

在这里插入图片描述
上图部署应用的方式是【分布式部署】

  • 服务器之间通过网络访问(存在网络开销)
  • 应用服务(Tomcat)和数据库服务器(MySQL)被部署在不同的服务器上
  • Tomcat 和 MySQL 独享自己所在服务器的内存空间

(4) 微服务

  • 微服务是系统的一种架构设计方式
  • 微服务一定是分布式,但分布式不一定是微服务

在这里插入图片描述
上图把一个应用全部的功能置于同一个项目、同一个应用、同一个 jar 包中,这是单体应用。


在这里插入图片描述
上图根据模块进行划分,每个模块通过服务之间的网络调用进行访问,是微服务架构。

(5) 分布式和微服务的对比

① 单体架构所有的模块全都耦合在一块。代码量大,维护困难。微服务每个模块就相当于一个单独的项目,代码量明显减少,遇到问题也相对来说比较好解决。

② 单体架构所有的模块都共用一个数据库,存储方式比较单一。微服务每个模块都可以使用不同的存储方式(如有的用 redis,有的用 MySQL),数据库也是单个模块对应自己的数据库。

③ 单体架构所有的模块开发所使用的技术一样。微服务每个模块都可以使用不同的开发技术,开发模式更灵活。


二、分布式应用

大数据时代,将会面临三个重大的问题:① 海量数据如何存储?② 如何对海量数据进行运算?③ 高并发的请求如何处理?
这些问题都可通过【分布式】进行解决。分布式存储解决海量数据的存储;分布式计算处理海量数据之间的运算;分布式系统处理高并发的请求。

(1) 分布式存储

在这里插入图片描述
使用 MySQL 数据库可存储数据,但其存储的数据是有限的。假如 MySQL 可存储的数据是 1T,那固定了只能存储 1T 的数据,若数据容量超过 1T 就无法存储了。

HBase:Hadoop Database 是一个高可靠性、高性能、面向列、可伸缩分布式存储系统。利用 HBase 技术可在廉价 PC Server 上搭建起大规模的结构化的存储集群。【百度百科】
在这里插入图片描述

(2) 分布式计算

分布式计算:分而之,把一个大的计算任务分解为多个小的计算任务进行计算操作。把小的计算任务的计算结果进行汇总,进而得到大的计算任务的结果。
在这里插入图片描述
上图,有一个计算海量数据中字母个数的任务。每种数据被存放在不在的服务器中,计算字母个数的代码放在 A 服务器。把每个服务器的数据都移动到 A 服务器并进行计算会非常耗费时间和性能。最好的做法是:把计算字母个数的代码移动到不同的服务器,在数据所在的服务器统计完字母个数后再把计算结果进行汇总。
一份计算字母个数的代码可能最多100M,而不同服务器上的一份数据肯定是远大于100M的,移动代码(运算)比移动数据划算。

分布式计算强调:移动运算,而不是移动数据

(3) 分布式系统

把应用服务器(Tomcat)和数据库服务器(MySQL)部署在不同的服务器上,Tomcat 和 MySQL 之间的沟通通过网络进行。


三、分布式协调服务(以 ZooKeeper 为例)

在这里插入图片描述
上图,客户端若想访问秒杀服务,需要知道有那些秒杀服务器可访问;需要知道秒杀服务的动态变化(那些服务器宕机了,那些新的服务器上线了)
但实际上,客户端是没有必要知道服务器的状态的。

ZooKeeper 在分布式系统中充当协调者的角色,帮助客户端和分布式服务之间进行沟通,保证系统的正常运行。

在这里插入图片描述

相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
|
4月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
4月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
16天前
|
存储 SpringCloudAlibaba Java
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论。
【SpringCloud Alibaba系列】一文全面解析Zookeeper安装、常用命令、JavaAPI操作、Watch事件监听、分布式锁、集群搭建、核心理论
|
2月前
|
存储 运维 NoSQL
分布式读写锁的奥义:上古世代 ZooKeeper 的进击
本文作者将介绍女娲对社区 ZooKeeper 在分布式读写锁实践细节上的思考,希望帮助大家理解分布式读写锁背后的原理。
|
3月前
|
存储 缓存 NoSQL
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
大数据-38 Redis 高并发下的分布式缓存 Redis简介 缓存场景 读写模式 旁路模式 穿透模式 缓存模式 基本概念等
84 4
|
3月前
|
分布式计算 NoSQL Java
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
Hadoop-32 ZooKeeper 分布式锁问题 分布式锁Java实现 附带案例和实现思路代码
64 2
|
3月前
|
分布式计算 Hadoop Unix
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
Hadoop-28 ZooKeeper集群 ZNode简介概念和测试 数据结构与监听机制 持久性节点 持久顺序节点 事务ID Watcher机制
58 1
|
3月前
|
分布式计算 Hadoop
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
Hadoop-27 ZooKeeper集群 集群配置启动 3台云服务器 myid集群 zoo.cfg多节点配置 分布式协调框架 Leader Follower Observer
66 1
|
3月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
58 0
|
4月前
|
Java
分布式-Zookeeper-分布式锁
分布式-Zookeeper-分布式锁
下一篇
开通oss服务