Kafka是一种高吞吐量的分布式发布订阅消息系统html
一、优势:
① 经过磁盘数据结构提供消息的持久化,这种结构对于即便数以TB的消息存储也可以保持长时间的稳定性能。
② 高吞吐量:即便是很是普通的硬件Kafka也能够支持每秒数百万的消息。
③ 支持经过Kafka服务器和消费机集群来分区消息。
④ 支持Hadoop并行数据加载。apache
二、基本概念:bootstrap
① 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)windows
三、环境准备:服务器
① 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:\Kafkaoop
四、配置设定:性能
① 环境变量的系统变量中添加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
五、测试运行:
① 启动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
看到以下提示,说明等待消费
⑥ 在生产者窗口中输入内容模拟生产,能够在消费者窗口中看到内容