![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
zookeeper
杨小帆_
沉下心来做技术
展开
-
Zookeeper 源码解析——服务端与客户端网络通信
文章目录一、概述二、涉及的核心类2.1 核心类简介三、核心源码解析3.1 Standalone 模式下建立 Netty 网络连接3.2 配置 Netty3.3 接收并处理请求3.4 发送响应四、源码总结4.1 接收请求4.2 发送响应五、内容总结5.1 ByteBuffer.slice()5.2 Netty.CompositeByteBuf5.3 零拷贝队列六、思考5.1 为什么 Zookeepe...原创 2019-11-23 09:56:50 · 729 阅读 · 0 评论 -
Zookeeper 源码解析——客户端网络通信
文章目录一、概述二、 Zookeeper 中的 RPC 网络数据结构2.1 协议数据结构2.2 核心数据结构 Packet三、核心源码解析3.1 建立 Netty 网络连接3.2 SendThread 从 outgoingQueue 获取并发送 Packet3.3 同步版 RPC 调用流程(Create API)3.3.1 创建 Packet 并入队 outgoing (且 Packet.Wait...原创 2019-11-21 20:56:26 · 527 阅读 · 0 评论 -
Zookeeper Zab 协议解析——Zookeeper 源码解析之 Fle算法与 Zab协议(五)
文章目录一、概述二、Zab 协议描述2.1 前文回顾三、Fle 算法描述3.1 前文回顾3.2 算法流程图——网络层3.3 算法流程图——应用层四、Zab 协议与 Fle 算法4.1 Zab 协议与 Fle 算法的关系4.2 Fle 算法所做的优化五、参考文献一、概述 在前面的博文中我们已经分别分析过了Zookeeper中的Zab协议和Fle算法,在这篇文章中我们将对两者的执行流程进行总结,...原创 2019-11-09 13:04:22 · 584 阅读 · 0 评论 -
Zookeeper Zab 协议解析——Zookeeper 源码解析之再探领导者选举算法实现(四)
文章目录一、概述二、初探 FLE 算法实现三、源码解析3.1 问题探究3.2 WorkerReceiver 中的选举逻辑3.3 FLE 算法代码实现中的消息传递四、内容总结一、概述 在上一篇博文中我们分析了FastLeaderElection中的lookForLeader方法中的选举逻辑,当时分析完后觉得逻辑还是比较合理的,但是今早刷牙的时候突然产生了一个疑问,如果lookForLeader...原创 2019-11-08 17:49:18 · 365 阅读 · 0 评论 -
Zookeeper Zab 协议解析——Zookeeper 源码解析之初探领导者选举算法实现(三)
文章目录一、概述二、核心类简介2.1 QuorumCnxManager三、源码解析3.1 选举入口分析3.2 选举初始化3.3 选举流程四、内容总结一、概述 本篇博文会从 Zookeeper 中 FLE(Fast Leader Election) 算法的代码实现入口着手,依次分析 FLE 算法的初始化流程和主要的选举流程的代码实现,并着重分析 FLE 算法中在 Zookeeper 启动时的选...原创 2019-11-07 22:03:01 · 924 阅读 · 1 评论 -
Zookeeper Zab 协议解析——算法细节分析(二)
文章目录一、概述二、算法整体描述三、算法细节分析3.1 变量介绍3.2 细节概述3.3 确立一个新的 Leader(关于 Election 状态)四、参考文献一、概述 在前面的一篇文章中我们已经对 Zab 协议的整体流程进行了分析,在这篇博文里我们继续对 Zab 协议中的一些细节部分进行分析,进一步加深对于协议的理解。二、算法整体描述 Zookeeper Zab 协议解析——算法整体...原创 2019-11-03 19:54:33 · 481 阅读 · 0 评论 -
Zookeeper Zab 协议解析——算法整体描述(一)
文章目录一、概述二、协议简介三、协议算法解析3.1 算法概述3.2 变量介绍3.3 Phase 1 发现 (Discovery)3.4 Phase 2 同步 (Synchronization)3.5 Phase 3 广播 (Broadcast)四、参考文献一、概述 这篇博文算是对 Zookeeper Zab 协议的一次整体概述,主要是根据论文描述对 Zab 协议三大主要阶段详细过程的分析,先...原创 2019-11-03 13:53:06 · 1363 阅读 · 0 评论 -
从零开始搭建单服务器 zookeeper 注册中心(Ubuntu虚拟机 + SpringBoot)
一、Ubuntu 虚拟机安装为了便于调试,因此我在这里选择使用虚拟机作为远程服务器来实现注册中心,其中对于虚拟的操作系统选择一般是有 Ubuntu 或者 CentOS,因为之前在云服务器上安装的就是 CentOS 系统,所以这里就选择了使用 Ubuntu 。1.1 虚拟机对于虚拟机的选择因为我刚开始是尝试使用 Win 自带的 hyper-v ,但是在尝试多次之后都以莫名其妙的原因失败了...原创 2019-09-10 19:50:27 · 259 阅读 · 0 评论 -
Java 秒杀系统性能优化(zookeeper 实时同步集群 JVM 缓存 )
一、概述在该系列的前面几篇博文中我们已经分析过了使用不同的技术对初始版的秒杀系统进行性能优化,同时在上一篇博文中我们使用了 JVM 缓存技术来对系统进行优化。在单机的情况下我们使用 JVM 缓存技术来对已售罄的商品进行缓存是没有问题的,可以在一定程度上优化系统的性能,并且在代码抛出异常时我们也只需进行简单的回滚(移除列表中的商品)即可。但是当我们的系统需要应对更多的流量时,我们可能会采用集...原创 2019-09-12 19:49:33 · 2139 阅读 · 2 评论