kafka与zookeeper实战笔记
kafka命令

1.先启动zookeeper zkServer.cmd/zkServer.sh
2.启动kafka[需要指定server.properties文件] kafka-server-start.bat .\..\..\config\server.properties
3.创建主题 需要指定zk管理地址、副本因子、分区、主题名称
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic secure
4.生产者连接指定broker的topic进行生产
kafka-console-producer.bat --broker-list localhost:9092 --topic secure
5.消费者进行连接,消费指定的topic
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic secure 【--from-beginning 会消费所有包括历史信息】
本地集群搭建(3节点)
1.复制2个server.properties -> 修改文件的broker.id 打开[#listeners=PLAINTEXT://localhost:9093]
2.根据配置文件启动
kafka-server-start.bat .\..\..\config\server-1.properties kafka-server-start.bat .\..\..\config\server-2.properties
3.集群环境创建主题
kafka-topics.bat --zookeeper localhost:2181 --create --replication-factor 3 --partitions 1 --topic secure2
【遇到超时异常,需要重新启动zookeeper环境】
================================================
查看启动后的环境信息
>\kafka\kafka_2.11-2.1.0\bin\windows>kafka-topics.bat --describe --zookeeper localhost:2181 --topic secure2
Topic:secure2 PartitionCount:1 ReplicationFactor:3 Configs:
Topic: secure2 Partition: 0 Leader: 0 Replicas: 0,1,2 Isr: 0,1,2
4.关闭kafka中的一个节点,查看leader切换
>\kafka\kafka_2.11-2.1.0\bin\windows>wmic
wmic:root\cli>process where "caption = 'java.exe' and commandline like '%server-1.properties%'" get processid
ProcessId 12168
>taskkill /pid /f /12168
查看关闭后的leader结果
>\kafka\kafka_2.11-2.1.0\bin\windows>kafka-topics.bat --describe --zookeeper localhost:2181 --topic secure2
Topic:secure2 PartitionCount:1 ReplicationFactor:3 Configs:
Topic: secure2 Partition: 0 Leader: 0 Replicas: 0,1,2 Isr: 0,2
kafka中生产者和消费者配置信息
Producer API的主要配置设置在下表中列出以便更好地理解 -
client.id 确定生产者应用
producer.type 是同步还是异步?
acks acks配置控制生产者请求下的标准被认为是完整的。
retries 如果生产者请求失败,则自动重试具有特定的值。
bootstrap.servers 引导经纪人(brokers)列表。
linger.ms 如果想减少请求的数量,可以将linger.ms设置为大于某个值的值。
key.serializer 序列化器接口的键。
value.serializer 序列化器接口的值。
batch.size 缓冲区大小。
buffer.memory 控制生产者可用于缓冲的总内存量。
Consumer客户端API主配置设置的配置设置 -
bootstrap.servers 经纪人的引导列表。
group.id 将个人消费者分配给组。
enable.auto.commit 如果值为true,则为偏移启用自动提交,否则不提交。
auto.commit.interval.ms 返回更新的消耗偏移量被写入ZooKeeper的频率。
session.timeout.ms 指示在放弃并继续使用消息之前,Kafka将等待多少毫秒以等待ZooKeeper响应请求(读取或写入)。
=====================zookeeper==================================
zookeeper解决分布式中解决竞争条件和死锁问题使用故障安全同步方式处理;数据不一致采用原子性解决。

优点:1.简单 2.同步 3.有序 4.序列化 5.原子性
1.创建

#create [/flag] /path
zookeeper系统结构由:client server cluster leader follower
分层命名空间:/ config 全局配置【其下存储有多个znode,大小可为1M】 workers 命名空间
创建一个永久的Znode
create /FirstZnode "Myfirstzookeeper-app"
创建一个连续的Znode
create -s /FirstZnode "second-data"
创建一个临时的Znode
create -e /SecondZnode "Ephemeral-data"
2.查询
#get /path get /FirstZnode
Myfirstzookeeper-app
cZxid = 0x1f6
ctime = Thu Dec 27 19:29:18 CST 2018
mZxid = 0x1f6
mtime = Thu Dec 27 19:29:18 CST 2018
pZxid = 0x1f6
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 20
numChildren = 0
3.监视
显示通知当指定znode或znode的子数据变化。只能在 get 命令中设置监视。
get /path [watch] 1
get /FirstZnode 1
4.设置数据 设置指定znode的数据。
set /path data =================监视 修改 查询============================
[zk: localhost:2181(CONNECTED) 10] get /FirstZnode watch 1 监视
Myfirstzookeeper-app
cZxid = 0x1f6
ctime = Thu Dec 27 19:29:18 CST 2018
mZxid = 0x1f6
mtime = Thu Dec 27 19:29:18 CST 2018
pZxid = 0x1f6
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 20
numChildren = 0
[zk: localhost:2181(CONNECTED) 11] set /FirstZnode 123 设置 WATCHER:: WatchedEvent state:SyncConnected type:NodeDataChanged path:/FirstZnode
cZxid = 0x1f6
ctime = Thu Dec 27 19:29:18 CST 2018
mZxid = 0x1fb
mtime = Thu Dec 27 19:40:05 CST 2018
pZxid = 0x1f6
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
[zk: localhost:2181(CONNECTED) 12] get /FirstZnode 查询
123
cZxid = 0x1f6
ctime = Thu Dec 27 19:29:18 CST 2018
mZxid = 0x1fb
mtime = Thu Dec 27 19:40:05 CST 2018
pZxid = 0x1f6
cversion = 0
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
5.创建子znode 创建子znode类似于创建新的znodes。唯一的区别在于,子 znode 的路径将包含有父路径。
create /parent_path/subnode_path data ==============创建和获取=============================
[zk: localhost:2181(CONNECTED) 13] create /FirstZnode/ChildZnode 123
Created /FirstZnode/ChildZnode
[zk: localhost:2181(CONNECTED) 14] get /FirstZnode/ChildZnode
123
cZxid = 0x1fc
ctime = Thu Dec 27 19:43:10 CST 2018
mZxid = 0x1fc
mtime = Thu Dec 27 19:43:10 CST 2018
pZxid = 0x1fc
cversion = 0
dataVersion = 0
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 0
===========================================
6.列出子znode
ls /path
[zk: localhost:2181(CONNECTED) 15] ls /FirstZnode
[ChildZnode]
[zk: localhost:2181(CONNECTED) 16] ls /FirstZnode/ChildZnode
[]
7.检查状态 状态描述了指定znode的元数据。它包含详细信息,如时间戳,版本号,访问控制列表,数据长度和子znode数量。
stat /path [zk: localhost:2181(CONNECTED) 17] stat /FirstZnode
cZxid = 0x1f6
ctime = Thu Dec 27 19:29:18 CST 2018
mZxid = 0x1fb
mtime = Thu Dec 27 19:40:05 CST 2018
pZxid = 0x1fc
cversion = 1
dataVersion = 1
aclVersion = 0
ephemeralOwner = 0x0
dataLength = 3
numChildren = 1
8.删除Znode 删除指定znode和递归删除所有的子znode。
rmr /path
rmr /FirstrZnode
kafka与zookeeper实战笔记的更多相关文章
- Zookeeper+Kafka完全分布式实战部署
Zookeeper+Kafka完全分布式实战部署 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 其实我之前部署过kafak和zookeeper的完全分布式,集群是可以正常使用没错, ...
- ZooKeeper学习笔记(一)——概述
zookeeper学习笔记(一)--概述 1. 概述 Zookeeper是一个开源的分布式的,为分布式应用提供协调服务的Apache项目.zookeeper从设计模式的角度来理解:是一个基于观察者设计 ...
- [转帖]Kafka 原理和实战
Kafka 原理和实战 https://segmentfault.com/a/1190000020120043 两个小时读完... 实在是看不完... 1.2k 次阅读 · 读完需要 101 分钟 ...
- Zookeeper学习笔记(上)
Zookeeper学习笔记 本篇主要是一些基本的介绍和API的使用介绍, 有些只是记录了知识点,而没有完全在笔记中详细解释, 需要自行查找资料补充相关概念 主要参考了课程中的内容: Zookeeper ...
- Kafka之 API实战
Kafka之 API实战 一.环境准备 1)启动zk和kafka集群,在kafka集群中打开一个消费者 [hadoop1 kafka]$ bin/kafka-console-consumer.sh \ ...
- kafka及zookeeper安装
kafka_2.9.2-0.8.1.tgzzookeeper-3.4.8.tar.gz 安装 zookeeper1 export PATH=$PATH:/usr/local/zookeeper/bin ...
- mysql颠覆实战笔记(五)--商品系统设计(二):定时更新商品总点击量
继续回到沈老师的MYSQL颠覆实战,首先回顾下上一节课的内容,请大家会看下上节课写的存储过程. 打开prod_clicklog表, 我们只要把日期(不含时分秒)的部分存在数据库中, 如果同一日期有相同 ...
- mysql颠覆实战笔记(四)--商品系统设计(一):商品主表设计
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸 ...
- mysql颠覆实战笔记(一)--设计一个项目需求,灌入一万数据先
版权声明:笔记整理者亡命小卒热爱自由,崇尚分享.但是本笔记源自www.jtthink.com(程序员在囧途)沈逸老师的<web级mysql颠覆实战课程 >.如需转载请尊重老师劳动,保留沈逸 ...
随机推荐
- Python 之beautifulSoup4解析库
一.节点选择器 from bs4 import BeautifulSoup if __name__ == '__main__': html = ''' <div> <ul> & ...
- centos7 安装 PostgreSql
确定你是管理员,然后运行命令: yum -y install postgresql-server postgresql-contrib 初始化数据库 postgresql-setup initdb 启 ...
- Day 11 文件和异常
文件和异常 在实际开发中,常常需要对程序中的数据进行持久化操作,而实现数据持久化最直接简单的方式就是将数据保存到文件中.说到“文件”这个词,可能需要先科普一下关于文件系统的知识,对于这个概念,维基百科 ...
- python 单元测试中处理用例失败的情况
今天有一个需求, 在单元测试失败的时候打印一些日志, 我们管他叫 dosomething 吧 ,反正就是做一些操作 查了下并没有查到相关的方法, 于是研究了一波unittest 的源码 发现了这个东西 ...
- 《程序设计基础》实验题目2 c文件读取(反序列化?) 链表排序
题目: 每个学生的信息卡片包括学号.姓名和成绩三项.定义存储学生信息的单向链表的结点类型:编写函 数,由文件依次读入 n(n≥0)个学生的信息,创建一个用于管理学生信息的单向链表:编写函数,对 该链表 ...
- jquery 插件封装模板
//插件编写模板 ;(function ($) { $.fn.plugIn = function ( opt ) { var def = { //这里填写自定义的参数例如: event : 'clic ...
- 【[Offer收割]编程练习赛13 D】骑士游历(矩阵模板,乘法,加法,乘方)
[题目链接]:http://hihocoder.com/problemset/problem/1504 [题意] [题解] 可以把二维的坐标转成成一维的; 即(x,y)->(x-1)*8+y 然 ...
- Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method fail
SpringBoot 单元测试报错 @RunWith(SpringRunner.class) @SpringBootTest public class ProductCategoryRepositor ...
- qwb与小数
qwb与小数 Time Limit: 1 Sec Memory Limit: 128 MB Description qwb遇到了一个问题:将分数a/b化为小数后,小数点后第n位的数字是多少? 做了那 ...
- How do I drop a MongoDB database, from the command line?
mongo <dbname> --eval "db.dropDatabase()" > use mydb; > db.dropDatabase(); mon ...