kafka是目前非常流行的消息中间件,在消息处理、日志处理、集群监控等领域有广泛应用。
kafka的官方网站为:http://kafka.apache.org/、
kafka有四个核心API:
- 应用程序使用
Producer API
发布消息到1个或多个topic(主题)。 - 应用程序使用
Consumer API
来订阅一个或多个topic,并处理产生的消息。 - 应用程序使用
Streams API
充当一个流处理器,从1个或多个topic消费输入流,并生产一个输出流到1个或多个输出topic,有效地将输入流转换到输出流。 Connector API
允许构建或运行可重复使用的生产者或消费者,将topic连接到现有的应用程序或数据系统。例如,一个关系数据库的连接器可捕获每一个变化。
作者:半兽人
链接:https://www.orchome.com/5
来源:OrcHome
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
1. 安装Zookeeper
kafka通过zookeeper实现集群间的状态同步,安装kafka集群之前首先要安装zookeeper集群,可以参考之前的文章https://blog.youkuaiyun.com/sjhuangx/article/details/81155501
2. 安装kakfa
将下载的kafka解压到d:/programs/kafka_2.11-2.3.0目录下,然后编辑config/server.properties文件,分别复制为server-1.properties
、server-2.properties、server-3.properties,修改内容如下:
# config/server-1.properties:
broker.id=1
listeners=PLAINTEXT://:9092
log.dir=./kafka-logs-1
# config/server-2.properties:
broker.id=2
listeners=PLAINTEXT://:9093
log.dir=./kafka-logs-2
# config/server-3.properties:
broker.id=3
listeners=PLAINTEXT://:9094
log.dir=./kafka-logs-3
然后在命令依次启动3个kafka服务器节点
#启动节点1
bin\windows\kafka-server-start.bat config\server-1.properties
#启动节点2
bin\windows\kafka-server-start.bat config\server-2.properties
#启动节点3
bin\windows\kafka-server-start.bat config\server-3.properties
通过zookeeper命令行可以看到/brokers/ids下已经有3个kafka节点存在了
此时kafka集群已经启动好了
3. 创建topic
# 创建一个名为 my-topic 的主题
λ bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 3 --partitions 1 --topic my-topic
Created topic my-topic.
# 查看名为 my-topic 主题的状态
λ bin\windows\kafka-topics.bat --describe --zookeeper localhost:2181 --topic my-topic
Topic:my-topic PartitionCount:1 ReplicationFactor:3 Configs:
Topic: my-topic Partition: 0 Leader: 2 Replicas: 2,3,1 Isr: 2,3,1
输出解释:第一行是所有分区的摘要,其次,每一行提供一个分区信息,因为我们只有一个分区,所以只有一行。
"leader":该节点负责该分区的所有的读和写,每个节点的leader都是随机选择的。
"replicas":备份的节点列表,无论该节点是否是leader或者目前是否还活着,只是显示。
"isr":“同步备份”的节点列表,也就是活着的节点并且正在同步leader。
4. 消息创建和消费
控制台消息生产者
# 创建一个控制台消息生产者
λ bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic my-topic
>fsdfa
>fsadfxvzxc
>vxczv
>fsaf
>fdsa
>fsdf
>vzxcv
>aaaa
>zzzz
>xxx
>dddd
>
控制台消息消费者
# 创建一个控制台消息消费者
D:\Programs\kafka_2.11-2.3.0
λ bin\windows\kafka-console-producer.bat --bootstrap-server localhost:9092,localhost:9093 --topic my-topic
>fsdfa
>fsadfxvzxc
>vxczv
>fsaf
>fdsa
>fsdf
>vzxcv
>aaaa
>zzzz
>xxx
>dddd
>