Kafka是一种高吞吐量的分布式发布订阅消息系统
1、优点:
① 通过磁盘数据结构提供消息的持久化,这种结构对于即使数以TB的消息存储也能够保持长时间的稳定性能。
② 高吞吐量:即使是非常普通的硬件Kafka也可以支持每秒数百万的消息。
③ 支持通过Kafka服务器和消费机集群来分区消息。
④ 支持Hadoop并行数据加载。
2、基本概念:
① Broker:Kafka集群包含的一个或多个服务器
② Topic:每条发布到Kafka集群的消息都有一个类别主题。(物理上不同Topic的消息分开存储,逻辑上一个Topic的消息虽然保存于一个或多个broker上但用户只需指定消息的Topic即可生产或消费数据而不必关心数据存于何处)
③ Partition:分区,每个Topic包含一个或多个Partition
④ Producer:负责发布消息到Kafka broker
⑤ Consumer:消息消费者,向Kafka broker读取消息的客户端
⑥ Consumer Group:每个Consumer属于一个特定的Consumer Group(可为每个Consumer指定group name,若不指定group name则属于默认的group)
3、环境准备:
① Windows 7 64位旗舰版
② Zookeeper文件一份zookeeper-3.4.13.tar.gz(下载地址:http://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/),下载完毕后解压至D:\Kafka
③ Kafka文件一份kafka_2.12-2.1.1.tgz(下载地址:http://kafka.apache.org/downloads.html),下载完毕后解压至D:\Kafka
4、配置设定:
① 环境变量的系统变量中添加ZOOKEEPER_HOME=D:\Kafka\zookeeper-3.4.11,系统变量path中追加;%ZOOKEEPER_HOME%\bin
② D:\Kafka\zookeeper-3.4.13\conf目录中,zoo_sample.cfg文件改名为zoo.cfg
③ zoo.cfg文件中12行的dataDir=/tmp/zookeeper,修改为:dataDir=D:\\Kafka\\zookeeper-3.4.13\\tmp
④ D:\Kafka\kafka_2.12-2.1.1\config目录中,找到server.properties文件,60行的log.dirs=/tmp/kafka-logs,修改为:log.dirs=D:\\Kafka\\kafka_2.12-2.1.1\\kafka-logs
5、测试运行:
① 启动Zookeeper
在D:\Kafka\zookeeper-3.4.13\bin目录下,找到zkServer.cmd文件,双击执行,看到如下提示,说明Zookeeper正常启动
注意:启动后不要关闭窗口
② 启动Kafka
在D:\Kafka\kafka_2.12-2.1.1目录下,shift+鼠标右键,找到"在此处打开命令窗口",输入:
.\bin\windows\kafka-server-start.bat .\config\server.properties
看到如下提示,说明Kafka正常启动
注意:启动后不要关闭窗口
③ 创建及查看Topic
在D:\Kafka\kafka_2.12-2.1.1目录下,shift+鼠标右键,找到"在此处打开命令窗口",输入:
.\bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
看到如下提示,说明创建成功
想查看创建过的Topic,可以继续输入:
.\bin\windows\kafka-topics.bat --list --zookeeper localhost:2181
看到如下提示,即列出创建过的Topic列表
④ 创建生产者
在D:\Kafka\kafka_2.12-2.1.1目录下,shift+鼠标右键,找到"在此处打开命令窗口",输入:
.\bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic test
看到如下提示,说明等待生产
⑤ 创建消费者
在D:\Kafka\kafka_2.12-2.1.1目录下,shift+鼠标右键,找到"在此处打开命令窗口",输入:
.\bin\windows\kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test --from-beginning
看到如下提示,说明等待消费
⑥ 在生产者窗口中输入内容模拟生产,可以在消费者窗口中看到内容