
zookeeper
爱喝冰阔乐
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2PC和3PC协议
2PC two-phase-commit 即两阶段提交1.Coordinator协调者发送vote-request给所有的参与者,如果参与者任务可以提交则返回vote-commit,否则返回vote-abort2.当所有的参与者都返回vote-commit时候,Coordinator发送global_commit全部提交,否则发送global-abort,全部取消1.如果参与者挂了...原创 2020-04-23 11:20:48 · 245 阅读 · 0 评论 -
Paxos算法
一.Paxos算法Paxos不要求有效的传输性,只需要N+1(总数2N+1)正常就可以Paxos将系统中的角色分为提议者 (Proposer),决策者 (Acceptor),和最终决策学习者 (Learner):Proposer: 提出提案 (Proposal)。Proposal信息包括提案编号 (Proposal ID) 和提议的值 (Value)。Acceptor:参与决策,回...原创 2020-05-02 10:25:40 · 215 阅读 · 0 评论 -
zookeeper选举详情流程
1.加载配置文件,单节点不牵扯选举,多借点需要选举2.设置IP.PORT,最大连接数等参数3.启动线程,开始节点选举4.looking状态:统计所有的looking的总数,并为每个设置选票为当前节点的myid,当前日志ID zxid和当前的的epoch 构建选票信息。开始选举 1.将自己的选票信息发送给其他所有节点 2.自己的接收队列中获取消息是否为空 1.如果为空,检查自己是否收到消息,没有的话,则发送消息联系其他节点,我没有收到消息 2.否则尝试连接...原创 2020-08-27 11:08:55 · 487 阅读 · 0 评论 -
zookeeper基础
zookeeper客户端的读请求可以被集群中的任何一台机器进行处理,如果读请求在节点注册了监控器,这个监听器也是由所连接的zookeeper机器处理,对于写请求,这些请求会同时发给其他的机器并且达到一致结果,请求才会返回成功,因此随着集群机器越多,读请求的吞吐会提高,但是写请求的吞吐会下降节点:有序节点:在父节点下面依次创建子节点临时节点:客户点可以创建一个临时节点,在回话结...原创 2020-05-02 10:30:28 · 128 阅读 · 0 评论 -
Raft算法
一、Raft算法概述1.Raft算法是从leader选举,日志同步,安全性,日志压缩等方面进行考虑解决问题2.流程 1.leader 接受客户端请求,向followers发送日志同步请求,当绝大部分followers都接收到同步请求时候,告诉followers提交日志 2.followers 接受并持久化Leader同步的日志,在Leader告之日志可以提交之后,提交...原创 2020-05-02 10:24:07 · 440 阅读 · 0 评论 -
FastLeaderElection类学习leader
public class FastLeaderElection implements Election { private static final Logger LOG = LoggerFactory.getLogger(FastLeaderElection.class); /** * Determine how much time a process has ...原创 2020-04-26 09:57:49 · 281 阅读 · 0 评论 -
follower将接收到的信息发送给leader
一.follower将数据发送给同步learnerFollowerZooKeeperServer类,接收请求 //follower的请求处理器 @Override protected void setupRequestProcessors() {//commitProcessor有阻塞作用 //commitProcessor-> fir...原创 2020-04-25 13:29:45 · 400 阅读 · 0 评论 -
zookeeper简单实现一个分布式锁
maven引用<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plu...原创 2020-05-02 10:22:52 · 141 阅读 · 0 评论 -
zookeeper选举源码解析-leader选举-2
vote选票参数构造方法 public Vote(long id, long zxid, long electionEpoch, long peerEpoch) { this.version = 0x0; this.id = id; this.zxid = zxid; this.electionEpoch = electi...原创 2020-04-22 18:02:50 · 359 阅读 · 1 评论 -
zookeeperServer-leader选举1
QuorumPeerMain类1. Server入口启动server的启动类 public static void main(String[] args) { QuorumPeerMain main = new QuorumPeerMain(); try { main.initializeAndRun(args); ...原创 2020-04-22 16:16:33 · 475 阅读 · 0 评论 -
zookeeper源码-watcher监听
ClientCnxn类的readResponse()方法 void readResponse(ByteBuffer incomingBuffer) throws IOException { ByteBufferInputStream bbis = new ByteBufferInputStream( incomi...原创 2020-04-21 17:42:30 · 321 阅读 · 0 评论 -
基于zookeeper实现简单的一个分布式锁
package zookeeper;import org.apache.zookeeper.*;import org.apache.zookeeper.data.Stat;import java.io.IOException;import java.util.ArrayList;import java.util.Collections;import java.util.List;...转载 2020-04-11 15:30:58 · 117 阅读 · 0 评论