kafka是一个高吞吐量的分布式消息系统,整体设计为典型的发布与订阅模式。kafka内部采用zookeeper来解决配置管理、通知/协调、集群管理、master选举等问题,所以建议先对zookeeper有个基本的了解,可以看下我的zookeeper笔记(一)。
这次对于kafka只介绍一下命令行下的安装部署等操作,其它的,比如kafka在zookeeper中的存储结构、配置详解、java客户端代码等,将在后续的讲解中进行介绍。
1、首先我们下载kafka,这里选择最新版本0.9.0.1,下载并解压,同样采取与zookeeper笔记中类似的目录结构,使用单机模拟集群:
/Users/zk_chs/something/kafka/kafka-0.9.0.1-001 /Users/zk_chs/something/kafka/kafka-0.9.0.1-002 /Users/zk_chs/something/kafka/kafka-0.9.0.1-003
2、进入每个Kafka的根目录,分别对其config/server.properties文件进行配置:
----config/server.properties broker.id=1 listeners=PLAINTEXT://:9091 port=9091 log.dirs=/Users/zk_chs/something/kafka/tmp/kafka01 zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
broker.id:当前kafka服务的id
listeners、post:监听的客户端连接端口
log.dirs:kafka数据、索引存储位置
zookeeper.connect:kafka依赖的zookeeper服务地址
再对另外两个kafka服务进行同样的配置:
----config/server.properties broker.id=2 listeners=PLAINTEXT://:9092 port=9092 log.dirs=/Users/zk_chs/something/kafka/tmp/kafka02 zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
----config/server.properties broker.id=3 listeners=PLAINTEXT://:9093 port=9093 log.dirs=/Users/zk_chs/something/kafka/tmp/kafka03 zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
因为我们模拟集群,为了方便管理,对于kafka的log.dir最好也统一一下路径:
/Users/zk_chs/something/kafka/tmp/kafka01 /Users/zk_chs/something/kafka/tmp/kafka02 /Users/zk_chs/something/kafka/tmp/kafka03
3、配置完成后便能进行启动了,不过在此之前,先将zookeeper服务进行启动。如果你的zookeeper服务已经启动,那么便能启动kafka了,首先还是进入kafka根目录,然后进行如下启动操作:
bin/kafka-server-start.sh config/server.properties &
随后,切换至不同的kafka目录,再次执行:
cd ../kafka-0.9.0.1-002 bin/kafka-server-start.sh config/server.properties & cd ../kafka-0.9.0.1-003 bin/kafka-server-start.sh config/server.properties
所有的kafka服务启动完成后,执行jps,可以看到:
1248 QuorumPeerMain
2055 Kafka
1224 QuorumPeerMain
2058 Jps
1212 QuorumPeerMain
2044 Kafka
2047 Kafka
以上代表我们启动了3个kafka服务,3个zookeeper服务。
4、接着创建一个topic,依然是在kafka根目录下执行:
bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 --partitions 3 --topic my_test
--create:创建topic
--zookeeper:连接的zookeeper节点地址
--replication-factor:数据副本数量
--partitions:对创建的topic进行分片
--topic:要创建的topic名称
5、向topic发送消息、从topic消费消息,在kafka根目录下执行:
bin/kafka-console-producer.sh --broker-list localhost:9091 --topic my-replicated-topic
--broker-list:此处不是zookeeper的地址,而是kafka客户端的地址
--topic:向哪个topic发送消息
bin/kafka-console-consumer.sh --zookeeper localhost:2181 --from-beginning --topic my-replicated-topic
--zookeeper:这里为zookeeper地址,不需要kafka客户端地址
--from-beginning:kafka消息存储在文件内,能够重复消费,这里代表偏移量(offsets)
--topic:从哪个topic消费消息
如果你同时开启producer、consumer两个bash窗口,当从producer向指定的topic发送消息时,便能看到consumer对其进行了消费,使用ctrl c即可退出发送消息或消费消息进程。
总结:
我们这次讲解了kafka的安装、基本配置、启动部署,以及一些kafka基本的操作,比如create topic,producer、consumer操作。
随后的笔记会对kafka的java客户端代码、kafka服务参数、zookeeper中节点数据进行讲解,欢迎继续学习。
相关推荐
1.kafka的基础知识(安装、部署、基础概念,版本) 2.kafka的特性 3. kafka客户端 4.kafka中的zookeeper 5. kafka如何不丢消息 6.kafka多线程消费 7.kafka重组平衡 8.kafka控制器 9.kafka监控 10.kafka集群部署及...
kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列学习笔记,kafka消息队列...
Kafka全套学习笔记
kafka学习笔记(一) ================= 本人整理的学习笔记,该笔记目前只有第一版,适合初学者初步了解kafka
kafka集群部署文档及kafka详解,包括kafka常用命令,详细部署说明,如何运维以及一些FAQ,下载app注册免费获取:http://m3w.cn/jcsh
kafka学习笔记,内容详实
Kafka学习笔记,包括Kafka术语、学习过程中单机版Kafka安装与配置、基于Docker的Kafka集群安装与配置、kafka消息机制与原理、学习方法
Kafka集群及Kafka-Manager安装部署
kafka安装部署文档及相关安装包 kafka-eagle安装部署步骤及相关安装包
Kafka学习笔记 3M大文件,全面涵盖kafka知识点,值得收藏
在本课程中,你将学习到,Kafka架构原理、安装配置使用、详细的Kafka写入数据和处理数据以及写出数据的流程、新旧版本对比及运用、分区副本机制的详解、内部存储策略、高阶API直接消费数据、等等
Kafka安装与部署指南
该笔记从零开始学习kafka,笔记内容包括:kafka的简介、下载、安装、配置、运行,以及springboot整合kafka实例
Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献...
Kafka学习笔记,全网最全
kafka安装和监控头平台
最全面的Kafka学习笔记,含代码,知识点,命令,设计图等等
以一个小白的角度来初探一下Kafka,本篇文章基于官方文 档,顺便说一句官方文档真的很重要,且读且珍惜。
kafka,安装部署文档,按步骤做,做完你就实现了生产者和消费者,订阅和消费了
storm kafka之间的搭建和配置开发的资料