kafka入门教程
一、介绍
kafka是一个分布式流处理平台,kafka提供了类似于JMS的特性,但在设计实现上又完全不同,它并不是基于JMS规范实现的(kafka的实现不包含事务特性性)。kafka对消息的保存时以Topic进行归类的,向Topic发送消息的称谓Producer,从Topic接受消息的称谓Consumer。kafka集群由多个service组成,每个service在kafka集群中被称作broker。kafka集群的作用就是存储从Producer发过来的消息,然后按照一定的规则将消息发送给Consumer。无论是kafka集群本身,还是Producer 或者Consumer,均依赖于zookeeper来管理集群中的信息同步。
它可以用于两大类别的应用:
- 构造实时流数据管道,它可以在系统或应用之间可靠地获取数据。 (相当于message queue)
- 构建实时流式应用程序,对这些流数据进行转换或者影响。 (就是流处理,通过kafka stream topic和topic之间内部进行变化)
二、安装和使用
1.你可以在kafka官网 http://kafka.apache.org/downloads下载到最新的kafka安装包
2.解压缩
tar
-xzf kafka_2.11-2.1.0.tgz
3.启动
(1)启动zookeeper
cd进入kafka解压目录,输入
bin/zookeeper-server-start.sh config/zookeeper.properties
启动zookeeper成功后会看到如下的输出
(2)启动kafka
cd进入kafka解压目录,输入
bin/kafka-server-start.sh config/server.properties
启动kafka成功后会看到如下的输出
4.创建一个topic
让我们创建一个名为“test”的topic,它有一个分区和一个副本:
bin
/kafka-topics
.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic
test
现在我们可以运行list(列表)命令来查看这个topic:
bin
/kafka-topics
.sh --list --zookeeper localhost:2181
test
bin
/kafka-console-producer
.sh --broker-list localhost:9092 --topic
test
This is a message
bin
/kafka-console-consumer
.sh --bootstrap-server localhost:9092 --topic
test
--from-beginning
This is a message