Zookeeper
文章平均质量分 93
Smallc0de
勤学如春起之苗,不见其增,日有所长;辍学如磨刀之石,不见其损,日有所亏。
展开
-
Apache Kafka API AdminClient Scram账户的创建与删除
由于Apache官方一直没有提供AdminClient中对账户这一块的操作,因此这部分大多数时候都是用命令行去操作的,但是命令行毕竟不是很方便。为了解决这部分问题,笔者去读了Kafka Scala的源码,从中梳理出来这部分内容供给大家参考。原创 2021-03-02 15:48:23 · 1595 阅读 · 10 评论 -
Kafka 如何给集群配置Scram账户认证
详细描述Kafka如何配置一个Scram账号认证的访问方式,以及注意事项,错误解决等等。原创 2021-02-19 20:28:23 · 6125 阅读 · 8 评论 -
Zookeeper + Centos7 详细安装教程
前言本篇是主要讲怎么在Centos7服务器上,配置Zookeeper集群,以及常见的问题解决。Zookeeper版本3.4.13。Java环境下载与配置工欲善其事,必先利其器。想运行Zookeeper必须先把周边环境搞好。最重要的就是java的环境安装好,有两个选择。第一去官网或者国内镜像下载JDK-linux包,这个就不多说了,下载好拷贝到任意目录,然后解压,解压到哪里看个人喜好。环境变量配好能用就行。tar -zxvf jdk-8u181-linux-x64.tar.gz #解压到当前目录t原创 2020-08-02 16:11:03 · 559 阅读 · 0 评论 -
Zookeeper 源码解读系列,集群模式(八)
前情提要上一篇我们止步于投票的验证部分,并且讲解了一个完整的接收和发送投票的机制以及,那么我们本篇就接着验证后的合法选票说。同样本篇也会被收录到【Zookeeper 源码解读系列目录】中。选举的逻辑那么我们接着上一篇的结尾继续讲解lookForLeader()方法验证过选票后,又对选票做了什么操作:public Vote lookForLeader() throws InterruptedException { /**初始化,略**/ try { /**已经讲过,略**/ //原创 2020-07-30 14:38:48 · 242 阅读 · 0 评论 -
Zookeeper 源码解读系列,集群模式(七)
前情提要上一篇博客我们提到SendWorker和RecvWorker这两个线程形成了两个链条,在选举过程中处于收发数据的重要位置。但是我们留了两个问题:1. queueSendMap这里的数据从何而来,2. recvQueue收到的数据是谁来使用的?本篇主要就是来处理这两个问题。本篇也会被收录到【Zookeeper 源码解读系列目录】中。FastLeaderElection上篇我们讲解过SendWorker和RecvWorker两个线程的作用。而这两个线程是在Listener这个线程中运行的,所以我们原创 2020-07-29 20:49:51 · 256 阅读 · 0 评论 -
Zookeeper 源码解读系列,集群模式(六)
前言我们在之前的博客里面已经讲完了Zookeeper的集群模式的启动和启动后接收数据的流程。那么我们本篇将开启Zookeeper的最后一个大的内容:Zookeeper的选举机制。自然本篇也会被收录到【Zookeeper 源码解读系列目录】中。...原创 2020-07-29 15:25:52 · 245 阅读 · 0 评论 -
Zookeeper 源码解读系列,集群模式(五)
前情提要上篇我们说到leader的处理器链的逻辑,当leader发送了一个事务的提议以后需要等待follower的ack响应才可以继续走下去,否则就会在CommitProcessor这里阻塞住,无法提交这个事务。所以本篇就接着上一篇博客继续探究,当follower端收到这个提议proposal以后,会走什么样的流程。本篇也会被收录到【Zookeeper 源码解读系列目录】中。Follower接收ProposalSyncRequestProcessor & SendAckRequestProce原创 2020-07-28 17:04:15 · 353 阅读 · 0 评论 -
Zookeeper 源码解读系列,集群模式(四)
前情提要我们用了三篇博客详细讲解了Zookeeper集群模式启动的时候是如何加载配置文件,如何开启socket,以及怎么进行数据同步的。这些做完以后,我们就可以启动了,但是启动之前还有领导者选举没有讲解,这部分我们留到后面专门去讲解。领导者选举也是一个大篇章,其中涉及到的知识点十分繁杂,所以放到最后。那么本篇就是集群模式服务端启动的后续了,在这一块中也会涉及到处理器链的知识,不了解的同学可以看【单机系列三】做个复习。本篇也会被收录到【Zookeeper 源码解读系列目录】中。初始化服务器运行到这里,数原创 2020-07-27 20:19:07 · 277 阅读 · 0 评论 -
Zookeeper 源码解读系列,集群模式(三)
前情提要上一篇我们讲了leader向learner同步数据的方式和内容,以及Zxid这个重要的概念。而止步于leader发送数据给learner,所以这一篇博客就要重点讲一下,learner拿到这些数据和操作码以后会做什么。这里笔者要提醒各位,我们现在一直都说的是服务端集群的机器互相之间的数据传输,和客户端已经没有关系了。客户端的源码不区分集群模式和单机模式,客户端的源码已然在单机模式系列讲完了,说到数据交互的时候千万不要搞混了,集群这部分源码都是服务端的内容。本篇也会被收录到【Zookeeper 源码解原创 2020-07-24 15:27:03 · 261 阅读 · 0 评论 -
Zookeeper 源码解读系列,集群模式(二)
前情提要上一篇博客我们基本上把Zookeeper在集群模式下数据同步之前,服务端的启动流程梳理了一遍。主要讲了Zookeeper是如何在配置文件中识别并开启集群模式的。开启以后,又是如何从快照中加载数据的。开启主线程以后Leader和各个Learner是如何进行交互,如何产生最新的Epoch届号以及如何进行ACK机制的。那么我们本篇就是要带大家看一下,完全启动之前的另一项非常重要的操作----数据同步,是如何进行的。本篇也会被收录到【Zookeeper 源码解读系列目录】中。到目前为止,我们一直都在讲服原创 2020-07-23 20:16:47 · 336 阅读 · 0 评论 -
Zookeeper 源码解读系列,集群模式(一)
前言本系列到现在已经把Zookeeper的单机模式全部讲解完毕,用了8篇博客来系统性的介绍了Zookeeper的客户端与服务端的交互过程,操作命令在客户端与服务端的执行流程等等内容。那么我们接下来就要开始攻克另一个Zookeeper的堡垒----集群模式的源码解析。集群模式的角色Zookeeper集群模式下一共有三个角色:名称说明LeaderZookeeper的主节点,只有leader能处理写请求Follower处理leader的proposal,转发写请求,参与选举原创 2020-07-23 10:51:10 · 472 阅读 · 0 评论 -
Zookeeper 源码解读系列补漏之加载快照数据到内存
前言在讲解Zookeeper服务端启动的时候,发现漏掉了一个知识点。就是在启动服务端的时候,服务端会从快照中把数据先load进入内存中去,但是这部分被遗漏了,重新写一篇帖子补上,会安插在遗漏的地方。既然已经提出来了,那么就作为一个章节点,好好的讲解一下。介绍以前还是要讲一下打快照的逻辑,打快照是SyncRequestProcessor这个处理器类做的,我们在处理器链的章节里已经分析过了。它首先先对事务进行持久化,然后再打快照。但是这里有一个细节,并不是每一个事务来了都会打一个快照,会累积随机数量的事务然原创 2020-07-21 17:44:06 · 344 阅读 · 0 评论 -
Zookeeper 源码解读系列, 单机模式(八)
前言我们在上一篇文章中已经讲了Closs Session以及其和临时节点的关系,我们讲了在客户端输入quit命令的时候Zookeeper的源码是怎么一个流程。所以我们这一篇博客就是要讲解最后一个小点:Zookeeper的ACL机制是什么样的,在源码中又是一个什么过程。同时笔者认为有必要说明一下,本篇内容主要是为了解读源码服务的,所以Zookeeper的权限操作的内容,以及权限分分类组成就不会过多的涉及,这些网络上已经有了很多帖子去讲解。所以笔者这里除非是很有必要,否则不会过多讲解,如果以后有时间再补上一篇原创 2020-07-20 21:21:54 · 365 阅读 · 0 评论 -
Zookeeper 源码解读系列目录
前言由于Zookeeper 源码解读系列越写越多,文章内的连接已经不足以满足整理和检索这一个系列了。所以笔者决定单抽出一篇帖子来统一整理原创 2020-07-18 13:09:09 · 1060 阅读 · 0 评论 -
Zookeeper 源码解读系列, 单机模式(七)
在之前的博客中,我们已经基本上把Zookeeper客户端和服务端怎样通信,怎样处理事务,以及各自收到请求后所走的流程介绍完了。到目前为止,单机模式下就只剩下了两个小点,一个是`Close Session`,另一个是`ACL`机制。这两个小点虽然放到了单机模式的章节里,但是基本上单机模式下和集群模式下是通用的。笔者在这里先讲解清楚,也可以减少集群模式下讲解代码的内容量。本节我们就先讲解第一个小点:`Close Session`与临时节点。原创 2020-07-18 12:44:58 · 197 阅读 · 0 评论 -
Zookeeper 源码解读系列, 单机模式(六)
前情提要上一篇【Zookeeper 源码解读系列, 单机模式(五)】EventThread这个线程在客户端方面的流程,其中包含了监听事件是怎么注册和触发的,这一篇我们接着继续后续的内容,一起来看一看当服务端接收到一个事件以后,服务端的处理流程是什么样的,以及服务端又是如何与客户端沟通的。上一篇我们已经透露过,本篇为了讲解的更清楚,我们就以Set操作作为一个例子讲解,所以这篇文章也是说是Zookeeper的Set命令是怎么触发一个事件并且返回给客户端的。...原创 2020-07-17 23:55:44 · 202 阅读 · 0 评论 -
Zookeeper 源码解读系列, 单机模式(五)
前情提要上一篇Zookeeper 源码解读系列, 单机模式(四)主要讲解了单机模式下Zookeeper的处理器链的工作原理和具体到代码中是怎么实现的,包括每个处理器链做了什么工作、各个处理器是怎么连接的、事务的存储、快照是如何打的等等。那么回顾一下,到目前为止我们已经讲了单机模式下Zookeeper客户端和服务端的启动、交互、SendThread和处理器链等等,我们还剩下了一个很重要的线程类EventThread,我想应该会有同学应该还记得EventThread和SendThread是同时启动的,但是我们原创 2020-07-16 16:34:28 · 275 阅读 · 0 评论 -
Zookeeper 源码解读系列, 单机模式(四)
前情提要上一篇【Zookeeper 源码解读系列, 单机模式(三)】我们讲了单机模式下服务器的启动,配置参数的解析,ZooKeeperServerMain的启动,服务端启动的步骤,启动时加载数据,最后是ZookeeperServer的启动。由于篇幅太长,考虑到大家阅读起来比较困难,就把单机模式下最重要也是最不好理解的一篇拆分出来,单独做为一篇以降低读者阅读时的疲劳感。那么我们就接着上一次的话题继续讲ZookeeperServer启动结束以后,又做了什么事情。请求处理器链的概念现在我们先把代码放一边,先原创 2020-07-15 19:02:45 · 362 阅读 · 0 评论 -
Zookeeper 源码解读系列, 单机模式(三)
前情提要上一篇Zookeeper 源码解读系列, 单机模式(二)我们基本上已经把客户端主要的逻辑代码讲解完了,虽然溜了一些散碎得知识点,这些点以后笔者会作为小点做一些单独篇章的更新。所以这一系列的文章还是以Zookeeper的主逻辑主题继续更新,上一篇中我们详细介绍了一个很重要的线程SendThread、两个很重要的queue:outgoingQueue和pendingQueue、客户端时怎么处理输入的命令的、客户端时如何发送数据给服务器的、客户端的注册连接以及重试机制,NIO思想是怎么在客户端实现的等等原创 2020-07-15 18:16:51 · 423 阅读 · 0 评论 -
Zookeeper 源码解读系列, 单机模式(二)
前情提要上一篇我们介绍了在单机模式下ZK是如何连接,如何初始化的,然后我们遗留一个问题:什么时候取出outgoingQueue里的数据呢?以及我们为了展示连接的过程而在SendThread.run()中略过了一大部分的代码。所以这一篇就是重点讲解连接之后做了什么,既然如此我们还是回到SendThread.run()里面接着探究连接之后做什么。探究SendThread上篇我们讲到客户端是要等待服务端返回的结果的,那么我们现在要做的就是解决问题:什么时候消费outgoingQueue这个保存packet的原创 2020-07-13 15:27:19 · 320 阅读 · 0 评论 -
Zookeeper 源码解读系列, 单机模式(一)
导读Zookeeper源码在当前各种开源框架中不算是多的,只有几万行,但是如果没有一个正确的指导或者方法,去读源码也是非常枯燥,没有头绪,而且非常容易放弃,笔者这一系列文章是笔者源码读下来的历程,梳理出来给想要读Zookeeper源码的后来者一个读源码的思路,以及更好的理解Zookeeper原理而写的。文章会以顺序模式进行,会对单机下一个命令是怎么执行的、ACL原理、CloseSession,到集群模式下数据的同步、领导者选举等等核心功能进行一一讲解,并不会对每一个命令行进行细致的解说,因为命令执行的模原创 2020-07-10 20:45:09 · 597 阅读 · 0 评论 -
Zookeeper-3.4.14 Win10 裸机运行(不包含命令) 教程
前言本文只是针对win10能裸机够运行zk,不包含其他教程。需要去官网下载zookeeper-3.4.14.tar.gz这里面有运行包zookeeper-3.4.14.jar,否则会报下面的错误,如果你是从git上拉下来的官方源码,那你一定会有这个错误。D:\javaSelfDownloadRepositry\zookeeper-3.4.14\bin>call "F:\Java\jdk1.8.0_191"\bin\java "-Dzookeeper.log.dir=D:\javaSelfDow原创 2020-06-14 13:30:05 · 531 阅读 · 0 评论 -
Zookeeper-3.4.14 Idea 源码安装与运行 Win10手把手教程
前言:本文是笔者搭建zookeeper源码的详细步骤以及遇到个各种坑的解决办法,希望对后人有帮助,阅读前首先你需要去官网下载zookeeper-3.4.14.tar.gz,当然你也可以去git上下载源码zookeeper-git-branch-3.4.14.zip,笔者建议去官网下载,因为官网上的tar包不仅包含源码,也包含运行时jar包使用起来更方便。观看本文前确定自己已经正确安装了Apache Ant,如果没有或者不知道,请移步我的文章Windows10 apache-ant-1.10.8 安装和原创 2020-06-14 11:08:17 · 861 阅读 · 7 评论 -
Windows10 apache-ant-1.10.8 安装和环境变量配置
首先去apache ant官网下载Ant安装包 https://ant.apache.org/bindownload.cgi下载apache-ant-1.10.8-bin.zip最小支持版本是Java 1.8下载好以后解压到任意目录下,如图我解压到F:\apache-ant目录下开始配置环境变量在用户变量和系统变量中都创建一个ANT_HOME的变量,并把路径拷贝到变量值中,或者通过浏览目录选择路径,如图在用户变量和系统变量中的CLASSPATH中配置lib,如图在用户变量和系统变量中原创 2020-05-21 21:34:21 · 1924 阅读 · 1 评论