乐趣区

关于java:微服务

微服务的调用思维

传统形式调用问题阐明:

微服务思维 - 注册核心

微服务概念:架构设计采纳分布式思维,当服务产生故障时,能够实现自动化的故障迁徙. 无需认为干涉.

注册核心实现原理:
(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(从机)次要负责客户端链接获取服务列表信息. 同时参加投票.

退出移动版