forked from 0voice/interview_internal_reference
-
Notifications
You must be signed in to change notification settings - Fork 2
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request 0voice#7 from pyinx/master
完善部分zookeeper的内容
- Loading branch information
Showing
9 changed files
with
93 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
#### **参考答案**: | ||
|
||
> A high-performance coordination service for distributed applications | ||
Zookeeper是基于Google Chubby论文的开源实现,它主要是用来解决分布式应用中经常遇到的一些数据管理问题,如:统一命名服务、状态同步服务、集群管理、配置管理 等等。 | ||
由于Hadoop生态系统中很多项目都依赖于zookeeper,如Pig,Hive等, 似乎很像一个动物园管理员,于是取名为Zookeeper。 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,12 +2,14 @@ | |
|
||
#### **参考答案**: | ||
|
||
1、命名服务 | ||
1、名字服务 | ||
|
||
2、配置管理 | ||
|
||
3、集群管理 | ||
|
||
4、分布式锁 | ||
|
||
5、队列管理 | ||
5、队列管理 | ||
|
||
6、消息订阅 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#### **题目**:zk中zab的工作原理 | ||
|
||
#### **参考答案**: | ||
|
||
ZAB 是 ZooKeeper Atomic Broadcast (ZooKeeper 原子广播协议)的缩写,它是特别为 ZooKeeper 设计的崩溃可恢复的原子消息广播算法。ZooKeeper 使用 Leader来接收并处理所有事务请求,并采用 ZAB 协议,将服务器数据的状态变更以事务 Proposal 的形式广播到所有的 Follower 服务器上去。这种主备模型架构保证了同一时刻集群中只有一个服务器广播服务器的状态变更,因此能够很好的保证事物的完整性和顺序性。 | ||
|
||
Zab协议有两种模式,它们分别是恢复模式(recovery)和广播模式(broadcast)。当服务启动或者在leader崩溃后,Zab就进入了恢复模式,当leader被选举出来,且大多数follower完成了和leader的状态同步以后, 恢复模式就结束了,ZAB开始进入广播模式。 |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,35 @@ | ||
#### **题目**:zk的session机制 | ||
|
||
#### **参考答案**: | ||
|
||
zookeeper会为每个客户端分配一个session,类似于web服务器一样,用来标识客户端的身份。 | ||
|
||
session的作用: | ||
|
||
|
||
- 客户端标识 | ||
- 超时检查 | ||
- 请求的顺序执行 | ||
- 维护临时节点的生命周期 | ||
- watcher通知 | ||
|
||
session的状态: | ||
|
||
- CONNECTING | ||
- CONNECTED | ||
- RECONNECTING | ||
- RECONNECTED | ||
- CLOSED | ||
|
||
session的属性: | ||
|
||
- SessionID:会话ID,全局唯一 | ||
- TimeOut:会话超时时间 | ||
- TickTime:下次会话超时时间点 | ||
- isClosing:会话是否已经被关闭 | ||
|
||
sessionID的构成: | ||
|
||
- 高8位代表创建Session时所在的zk节点的id | ||
- 中间40位代表zk节点当前角色在创建的时候的时间戳 | ||
- 低16位是一个计数器,初始值为0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters