大数据技术之kafka (第 3 章 Kafka 架构深入) Zookeeper 在 Kafka 中的作用

Kafka 集群中有一个 broker 会被选举为 Controller,负责管理集群 broker 的上下线,所有 topic 的分区副本分配和 leader 选举等工作。

 Controller 的管理工作都是依赖于 Zookeeper 的。 
 以下为 partition 的 leader 选举过程: 

        Leader选举流程

我们试试当这个主节点挂了,谁会被抢到(目前这个brokers/ids/    有0  1  2三个节点)

 我们启动zk客户端

[root@backup01 bin]# ./zkCli.sh
Connecting to localhost:2181
2020-04-19 16:05:13,799 [myid:] - INFO  [main:Environment@100] - Client environment:zookeeper.version=3.4.13-2d71af4dbe22557fda74f9a9b4309b15a7487f03, built on 06/29/2018 04:05 GMT
2020-04-19 16:05:13,815 [myid:] - INFO  [main:Environment@100] - Client environment:host.name=backup01
2020-04-19 16:05:13,815 [myid:] - INFO  [main:Environment@100] - Client environment:java.version=1.8.0_172
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:java.vendor=Oracle Corporation
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:java.home=/usr/local/java/jdk1.8.0_172/jre
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:java.class.path=/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../build/classes:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../build/lib/*.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/slf4j-log4j12-1.7.25.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/slf4j-api-1.7.25.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/netty-3.10.6.Final.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/log4j-1.2.17.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/jline-0.9.94.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../lib/audience-annotations-0.5.0.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../zookeeper-3.4.13.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../src/java/lib/*.jar:/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin/../conf:
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:java.io.tmpdir=/tmp
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:java.compiler=<NA>
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:os.name=Linux
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:os.arch=amd64
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:os.version=3.10.0-862.el7.x86_64
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:user.name=root
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:user.home=/root
2020-04-19 16:05:13,817 [myid:] - INFO  [main:Environment@100] - Client environment:user.dir=/usr/local/hadoop/zookeeper/zookeeper-3.4.13/bin
2020-04-19 16:05:13,818 [myid:] - INFO  [main:ZooKeeper@442] - Initiating client connection, connectString=localhost:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@277050dc
Welcome to ZooKeeper!
2020-04-19 16:05:13,878 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1029] - Opening socket connection to server localhost/0:0:0:0:0:0:0:1:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2020-04-19 16:05:14,007 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@879] - Socket connection established to localhost/0:0:0:0:0:0:0:1:2181, initiating session
2020-04-19 16:05:14,033 [myid:] - INFO  [main-SendThread(localhost:2181):ClientCnxn$SendThread@1303] - Session establishment complete on server localhost/0:0:0:0:0:0:0:1:2181, sessionid = 0x10004d8e0310000, negotiated timeout = 30000WATCHER::WatchedEvent state:SyncConnected type:None path:null
[zk: localhost:2181(CONNECTED) 0] 

我们看到  controller    是brokerid:0

[zk: localhost:2181(CONNECTED) 2] ls /
[cluster, controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]
[zk: localhost:2181(CONNECTED) 3] get /controller
{"version":1,"brokerid":0,"timestamp":"1586133981273"}
cZxid = 0x500000003
ctime = Mon Apr 06 08:46:21 CST 2020
mZxid = 0x500000003
mtime = Mon Apr 06 08:46:21 CST 2020
pZxid = 0x500000003
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x2000392dd2c0000
dataLength = 54
numChildren = 0
[zk: localhost:2181(CONNECTED) 5] 

当我们的kafkabrokerid挂了之后,zk会为我们怎么选举,我们将kafka的brokerid:0的节点  kill掉

查看这个brokerid为0的节点进程

[root@backup01 bin]# kill -9 19728
[root@backup01 bin]# jps
54464 ZooKeeperMain
12732 Elasticsearch
54750 Jps
14623 QuorumPeerMain
[root@backup01 bin]# 
[zk: localhost:2181(CONNECTED) 7] get /controller
{"version":1,"brokerid":1,"timestamp":"1587284613737"}
cZxid = 0x600000005
ctime = Sun Apr 19 16:23:33 CST 2020
mZxid = 0x600000005
mtime = Sun Apr 19 16:23:33 CST 2020
pZxid = 0x600000005
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x3000065a6f40003
dataLength = 54
numChildren = 0
[zk: localhost:2181(CONNECTED) 8] 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/576440.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQLServer优化二

建立合理的索引,避免扫描多余数据&#xff0c;避免表扫描&#xff01;几百万条数据&#xff0c;照样几十毫秒完成查询。关于SQL查询效率&#xff0c;100w数据&#xff0c;查询只要1秒&#xff0c;与您分享&#xff01; 查询效率分析&#xff1a; 子查询为确保消除重复值&#x…

大数据技术之kafka (第 3 章 Kafka 架构深入) Kafka 事务

Kafka 从 0.11 版本开始引入了事务支持。事务可以保证 Kafka 在 Exactly Once 语义的基础上&#xff0c;生产和消费可以跨分区和会话&#xff0c;要么全部成功&#xff0c;要么全部失败 3.6.1 Producer 事务 为了实现跨分区跨会话的事务&#xff0c;需要引入一个全局唯一的 T…

JasperReport里面的Demo

1. alterdesign 该例子演示了报表编译后&#xff0c;在报表展现的时候如何动态的控制其中的元素比如让某一个矩形变色或其他 2. antcompile 演示如何让 ant 来编译 3. chart 演示了如何在报表中添加图像&#xff0c;JasperReport是用Scriptlet的方式往报表中添加图像&#xff0…

LinkedList源码阅分析

LinkedList里面涉及到的一些操作&#xff0c;非常细致&#xff0c;以避免出现的空指针&#xff0c;理解后对于其优点与确定会有一个更加整体的认识吧。 继承关系图(对比ArrayList) 元素的存储结构 在LinkedList中&#xff0c;每一个元素都是Node存储&#xff0c;Node拥有一个存…

Windows Azure Marketplaces上的Bing Search API可用啦!

Windows Azure Marketplace上的Bing Search API 现在可用啦&#xff01;通过此服务&#xff0c;你可以嵌入web、图像、新闻和视频搜索结果&#xff0c;以及相关的搜索和拼写建议来创建独特的应用程序和服务。 你也可以将数据集里的信息通过标准化的数据服务整合到应用程序中&am…

取消选中目标CALL

事先在游戏里选中一个怪物bp send,回到游戏里,按ESC&#xff0c;OD断下来,复制 返回到 elementc.072AFDD8 005869B2 返回到 elementc.005869B2 来自 elementc.0058E8A0072AFDEC 00588B1F 返回到 elementc.00588B1F 来自 elementc.00586980072AFE28 005A7346 返回到 el…

《深入理解java虚拟机》第1章 走近Java

1.6实战:自己编译JDK 想要一探JDK内部的实现机制&#xff0c;最便捷的路径之一就是自己编译- -套JDK,通过阅读和跟踪调试JDK源码去了解Java技术体系的原理&#xff0c;虽然门槛会高一点&#xff0c;但肯定会比阅读各种书籍、文章更加贴近本质。另外&#xff0c;JDK中的很多底层…

【XDA汉化组编写】Android软件汉化/精简/去广告/优化教程 FAQ

* 引用、转载请注明出处&#xff1a;XDA智能手机论坛-bbs.xda.cn-iKira&#xff01; http://bbs.xda.cn/thread-10968699-1-1.html* 汉化其实不难&#xff0c;难的是持之以恒&#xff0c;祝各位机友学有所得。转载于:https://www.cnblogs.com/dongzhiquan/archive/2012/05/30/2…

《深入理解java虚拟机》第2章 Java内存区域与内存溢出异常

Java与C之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”&#xff0c;墙外面的人想进去&#xff0c;墙里面的人却想出来。 2.1 概述 https://blog.csdn.net/q5706503/article/details/84640762 对于从事C、C程序开发的开发人员来说&#xff0c;在内存管理领域&#…

管理学习(2)——职场中最重要的四件事

职场中最重要的四件事职场的核心精髓可以概括为职场中最重要的三件事&#xff0c;它们分别是&#xff1a;职场第一要务、职业化、职场的本质。 1.这三件事与身处职场的我们到底有什么关系呢&#xff1f; 就让我用三句话概括一下&#xff1a; 职场第一要务决定了我们在职场上的…

国内科技博客盘点

自从TechCrunch在2010年被AOL以三千万美金收购以后&#xff0c;国内的科技博客风起云涌&#xff0c;引起一股不小的科技博客热&#xff0c;至今为止&#xff0c;已是你方唱罢我登场&#xff0c;好不热闹&#xff0c;让我们来盘点一下国内近些年冒出来的一些比较知名的科技博客&…

线性表的定义和基本运算之线性结构

一、线性表的逻辑定义和性质 线性表是最简单和最常用的一种数据结构&#xff0c;他是由n个数据元素&#xff08;结点&#xff09;a1,a2,a3,a4........an组成的有限序列。其中&#xff0c;数据元素个数那位表的长度。当n为0时称为空表&#xff0c;非空的线性表通常记为 &#x…

TForm1*Form1=newTForm1(this); Form1-Show();

TForm1*Form1newTForm1(this);Form1->Show();通过 Wiz 发布转载于:https://www.cnblogs.com/xe2011/archive/2012/06/03/2532874.html

[科研笔记] 关于人工智能与算法项目的思考

原链接&#xff1a;https://blog.csdn.net/walilk/article/details/77131929 前言   [科研笔记] 系列是我在科研道路上的随笔和思考&#xff0c;内容不加以局限&#xff0c;是一个开放的文章系列&#xff0c;这也是给自己一点自由的空间。      本文是我结合自身经验给的…

数据结构的基本概念和抽象数据类型

1、基本概念和术语 数据&#xff1a;是对客观事物的符号表示。 数据元素&#xff1a;数据的基本单位&#xff0c;一个数据元素可由若干个数据项组成&#xff0c;数据项是数据的不可分割的最小单位 数据对象&#xff1a;性质相同的数据元素的集合是数据的一个子集 数据结构&…

Jquery实现列表框效果

在java web开发中&#xff0c;我们经常要用到列表框&#xff0c;特别在系统的权限管理中&#xff0c;如上图所示&#xff0c;要实现如上效果&#xff0c;请看下面的源代码&#xff1a;源代码如下&#xff1a;<html><head><title>全选效果</title><s…

项目过程管理

项目过程管理 1. 项目所需要的文档&#xff08;需要归档&#xff09; 需求文档&#xff08;需求评审时的问题列表&#xff09;技术文档&#xff08;技术评审时的问题列表&#xff09;排期文档开发文档&#xff08;记录开发过程中遇到的难题和解决方案&#xff09;测试文档&am…

数据结构之指针复习

废话不多说&#xff0c;拿起键盘就是干&#xff0c;直接上代码&#xff1a; #include <stdio.h>int main() {double *p;double x 66.6;p &x; //x占8个字节&#xff0c;一个字节占8位&#xff0c;一个字节一个地址double arr[3] { 1.1,2.2,3.3 };double *q;q &a…

51与PC通信协议设计及实现(三):51部分模块化分工及设计

整个的51部分的伪代码简写如下&#xff1a; 1 void sendData() 2 {} 3 void time() 4 {} 5 void keysChecked() 6 { 7 return loca; 8 return key_state; 9 }10 main()11 {12 init();13 while(1)14 {15 if(keysChecked 1) //放到中断处理比较好16 …

管理机器学习项目

管理机器学习项目 一. 目录 传统的软件项目管理目前的现状机器学习项目管理 二、传统的软件项目管理 传统的软件项目管理和开发流程已经非常成熟。大致的流程如下&#xff1a; 由运营、产品进行最初的功能策划&#xff0c;进行可行性分析由项目经理召集相关人员进行产品启…