微服务的调用思维
传统形式调用问题阐明:
微服务思维 - 注册核心
微服务概念:架构设计采纳分布式思维,当服务产生故障时,能够实现自动化的故障迁徙. 无需认为干涉.
注册核心实现原理:
(1)当服务器启动时,会将服务器的状态(服务名称 /IP/ 端口)一起写入注册核心.
(2)注册核心接管到服务器信息时,会动静的保护服务列表数据.
(3/4)当客户端(消费者)启动时,首先会链接注册核心,获取所有的服务列表数据. 并且将服务列表数据保留到本地.
(5)当消费者执行业务调用时,如果有多个服务的生产者时,采纳负载平衡的思维筛选其中的一个服务进行拜访(RPC).
(6)当服务器产生宕机时,因为注册核心有心跳检测机制,所有会动静的保护服务列表数据. 会全网播送告诉所有的客户端(消费者)更新服务列表数据. 在更新服务列表时,数据的同步会陷入阻塞的状态.
对于微服务思维负载平衡阐明
1. 集中式负载平衡
简述:所有的申请都必须有某个服务器进行对立的治理.
eg. Nginx 是集中式的负载平衡,然而 nginx 次要的作用是做反向代理.
2. 客户端负载平衡
简述:申请发送之前,每个客户端都十分分明的晓得,本人应该拜访哪台服务器.
在服务器外部. 由客户端间接拜访后端服务器,将负载的压力进行了分担.
注册核心 -zookeeper 介绍与装置、测试
Zookeeper 介绍
Zookeeper 是一个分布式的、开源的码的分布式应用程序协调服务,是 Google 的 Chubby 一个开源的实现,是 Hadoop 和 Hbase 的重要组件. 它是一个为分布式应用提供一致性服务的软件,提供的性能包含:配置保护、域名服务、分布式同步、组服务等。
Zookeeper 的指标就是封装好简单易出错的要害服务,将简略易用的接口和性能高效、性能稳固的零碎提供给用户。
Zookeeper 蕴含一个简略的原语集,提供 JAVA 和 C 的接口。
Zookeeper 代码版本中,提供了分布式独享锁、选举、队列的接口,代码在 zookeeper-3.4.3\src\recipes。其中散布锁和队列有 JAVA 和 C 两个版本。选举只有 Java 版本。
总结:Zookeeper 负责服务的协调调度. 当客户端发动申请时,返回正确的服务器地址.
Zookeeper 下载与装置
官网:http://mirrors.hust.edu.cn/ap…
注:zookeeper 是用 JAVA 开发的,装置前必须有 JDK
1. 解压文件
2. 批改配置文件
在 zk 根目录下创立文件夹 data/log mkdir data log
跳入 conf 目录中批改配置文件,复制配置文件并且批改名称
cp zoo sample.cfg zoo.cfg
3. 启动 zk
须要在 bin 目录中进行
启动 sh zkServer.sh start 或者 ./zkServer.sh start
终止 sh zkServer.sh stop
查看状态 sh zkServer.sh status
Zookeeper 集群装置
1. 筹备文件夹
在 zookeeper 根目录中创立新的文件夹 zkCluster.
2. 创立 zk1/zk2/zk3 文件夹.
3. 在每个文件夹里创立 data/log 文件夹.
mkdir {zk,zk2,zk3}/{data,log}
4. 增加 myid 文件
别离在 zk1/zk2/zk3 中的 data 文件夹中创立新的文件 myid. 其中的内容顺次为 1 /2/3,与 zk 节点号对应.
5. 编辑 myid 文件,定义编号.
6. 编辑配置文件
将 zoo_sample.cfg 复制为 zoo1.cfg 之后批改配置文件.
7. 批改 zoo1.cfg
配置实现后将 zoo1.cfg 复制 2 份. 之后须要批改对应的文件夹目录和不同的端口即可.
8.zk 集群测试
逐个启动:sh zkServer.sh start zoo1.cfg
敞开指令:sh zkServer.sh stop zoo1.cfg
查看状态:sh zkServer.sh status zoo1.cfg
查看主从关系,从机状况阐明.
从机
主机
对于 zookeeper 集群阐明
Zookeeper 集群 leader 负责监控集群状态,follwer 次要负责客户端链接获取服务列表信息. 同时参加投票.
对于集群的相干概念
1. 几台服务器能够搭建集群
公式:存活节点 >N/2
算数计算:
1 个节点 1-1 > 1/2 假的 不能搭建集群
2 个节点 2-1 > 2/2 假的 不能搭建集群
3 个节点 3-1 > 3/2 真的 能够搭建集群
论断: 集群最小单位 3 台.
2. 集群个别都是奇数台为什么?
3 个节点 3-1 > 3/2 真的 能够搭建集群 容许宕机 1 台
4 个节点 4-1 > 4/2 真的 能够搭建集群 容许宕机 1 台
阐明: 因为搭建偶数台和搭建奇数台的容灾成果雷同的, 所以个别都是奇数个.
3. 集群中的脑裂景象?
简述:因为集群工作过程中主机意外宕机之后集群开始进行选举. 如果呈现屡次间断平票状态时,则可能呈现脑裂景象. 脑裂景象产生的概率是:1/8=12.5%.
如何无效升高脑裂景象产生:减少节点的数量.
对于 zk 集群选举的标准
简述:zk 集群选举规定是 myid 最大值优先的算法,如果选举完结,则残余的节点当新主机的从机.
考题 1: 如果顺次启动 1 - 7 台 zk 节点
问 1: 谁当主机? 4
问 2: 谁永远不能入选主机? 1,2,3
zk 工作原理阐明
Zookeeper 集群中 leader(主机)负责监控集群状态同步数据,follower(从机)次要负责客户端链接获取服务列表信息. 同时参加投票.