一、kafka简介
1、Kafka是一种分布式的,基于发布/订阅的消息系统。主要设计目标如下:
- 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能
- 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输
- 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输
- 支持离线数据处理和实时数据处理
2、使用Kafka需要理解的一些概念
- Broker:Kafka集群包含一个或多个服务器,这种服务器被称为broker
- Topic:每条发布到Kafka集群的消息都有一个类别,这个类别被称为topic。(物理上不同topic的消息分开存储,逻辑上一个topic的消息虽然保存于一个或多个broker上但用户只需指定消息的topic即可生产或消费数据而不必关心数据存于何处)
- Partition:parition是物理上的概念,每个topic包含一个或多个partition,创建topic时可指定parition数量。每个partition对应于一个文件夹,该文件夹下存储该partition的数据和索引文件
- Producer:负责发布消息到Kafka broker
- Consumer:消费消息。每个consumer属于一个特定的consumer group(可为每个consumer指定group name,若不指定group name则属于默认的group)。使用consumer high level API时,同一topic的一条消息只能被同一个consumer group内的一个consumer消费,但多个consumer group可同时消费这一消息
二、安装Kafka
1、安装JDK环境
2、下载Kafka安装包,下载地址:http://kafka.apache.org/downloads,本例的版本是0.9.0.1,解压压缩包后如下:
(1)bin目录下存放的是程序运行时使用的脚本文件,bin的目录下存放的是 Linux 平台使用的 .sh 的shell脚本和一个windows文件夹,windows文件夹里放的是windows平台运行kafka的 .bat 文件。
(2)config目录下存放的是一些程序运行的配置文件
(3).libs目录是打包好的jar包,这个版本自带了zookeeper的jar包,所以不需要再安装zookeeper了
三、使用Kafka
1、启动zoopkeeper
(1)打开Windows命令行
(2) 切换到Kafka的安装目录
(3)输入如下命令:
bin\windows\zookeeper-server-start.bat config\zookeeper.properties
启动后如下图:
2、启动Kafka服务
(1)再打开一个命令行窗口, 切换到Kafka的安装目录
(2)输入如下命令:
bin\windows\kafka-server-start.bat config\server.properties
kafka启动后,如下图:
3、 创建一个主题,输入如下命令:
bin\windows\kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic adienTest
如下图:
可以使用如下命令查看创建的主题列表:
bin\windows\kafka-topics.bat --list --zookeeper localhost:2181
如下图:
4、启动生产者
(1)再打开一个命令行窗口, 切换到Kafka的安装目录
(2)输入如下命令:
bin\windows\kafka-console-producer.bat --broker-list localhost:9092 --topic adienTest
5、启动消费者
(1)再打开一个命令行窗口, 切换到Kafka的安装目录
(2)输入如下命令:
bin\windows\kafka-console-consumer.bat --zookeeper localhost:2181 --topic adienTest --from-beginning
6、此时可以在生产者的命令行窗口输入信息,随后就能在消费者的命令行窗口看到消费了这条信息,如下图: