简单说明什么是Kafka
Apache kafka是消息中间件的一种,是用于构建实时数据管道和流应用程序。具有横向扩展,容错,wicked fast(变态快)等优点,下面咱们就举个例子来说明下,它究竟是干啥用的!
例如:生产者消费者,生产者生产鸡蛋,消费者消费鸡蛋,生产者生产一个鸡蛋,消费者就消费一个鸡蛋,假设消费者消费鸡蛋的时候噎住了(系统宕机了),生产者还在生产鸡蛋,那新生产的鸡蛋就丢失了。再比如生产者很强劲(大交易量的情况),生产者1秒钟生产100个鸡蛋,消费者1秒钟只能吃50个鸡蛋,那要不了一会,消费者就吃不消了(消息堵塞,最终导致系统超时),消费者拒绝再吃了,”鸡蛋“又丢失了,这个时候我们放个篮子在它们中间,生产出来的鸡蛋都放到篮子里,消费者去篮子里拿鸡蛋,这样鸡蛋就不会丢失了,都在篮子里,而这个篮子就是”kafka“。鸡蛋其实就是“数据流”,系统之间的交互都是通过“数据流”来传输的(就是tcp、https什么的),也称为报文,也叫“消息”。消息队列满了,其实就是篮子满了,”鸡蛋“ 放不下了,那赶紧多放几个篮子,其实就是kafka的扩容。
后面大家会看到一些关于kafka的名词,比如topic、producer、consumer、broker,我这边来简单说明一下 :
:生产者,就是它来生产“鸡蛋”的。
producer
:消费者,生出的“鸡蛋”它来消费。
consumer
:你把它理解为标签,生产者每生产出来一个鸡蛋就贴上一个标签(topic),消费者可不是谁生产的“鸡蛋”都吃的,这样不同的生产者生产出来的“鸡蛋”,消费者就可以选择性的“吃”了。
topic
:就是篮子了
broker
各位现在大概知道kafka是干什么的了吧,它就是那个"篮子"。接下来我们就在Windows环境下安装kafka,笔者的环境是Windows8.1,jdk1.8.0_191版本,废话不多说,下面我就开始介绍啦..........
JDK的安装
- 下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.html
- 环境变量的配置:“我的电脑”-右键-“属性”-(左侧)高级系统设置-(弹窗右下角)环境变量配置
1. 创建JAVA_HOME,输入jdk的安装目录,比如: C:\Program Files (x86)\Java\jdk1.8.0_101 2. 创建CLASSPATH,输入 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar(注意最前面有一点) 3. 编辑Path把值放到最前边 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
- 运行cmd,输入
如出现一下界面信息,即JDK环境配置成功!java -version
Kafka入门级(一) Windows环境下安装
Zookeeper的安装
- 下载地址:http://mirror.bit.edu.cn/apache/zookeeper/,注意下载版本为 apache-zookeeper-3.5.5-bin.tar.gz
- 下载后,解压放在目录E:\kafka(本文所用的目录)下,关于zookeeper的目录,路径中最好不要出现空格、中文,比如E:\Program Files,尽量别用,运行脚本时会出现问题
- 进入解压后zookeeper所在的文件目录,例如本文的:E:\kafka\apache-zookeeper-3.5.5\conf
- 将"zoo_sample.cfg"重命名为"zoo.cfg"
- 打开zoo.cfg文件编辑,将dataDir=/tmp/zookeeper修改为dataDir=E:\\kafka\\apache-zookeeper-3.5.5\\data(本机安装zookeeper的文件目录),需要注意:路径要么是"/"分割,要么是转义字符"\\",这样会生成正确的路径(层级,子目录),否则会出错
-
Kafka入门级(一) Windows环境下安装 -
环境变量配置,参考上述JDK环境变量配置
1. 系统变量中添加ZOOKEEPER_HOME=E:\kafka\apache-zookeeper-3.5.5
2. 编辑系统变量中的path变量,增加%ZOOKEEPER_HOME%\bin
- 运行cmd,输入
zkserver
Kafka入门级(一) Windows环境下安装
如出现上图所示的界面,则恭喜你已经成功安装zookeeper了!!保持运行状态,不要关闭!!!!
笔者在尝试安装zookeeper的时候,由于版本下载的是 apache-zookeeper-3.5.5.tar.gz,所有配置完成之后,运行zkserver出现了”找不到或无法加载主类 org.apache.zookeeper.server.quorum.QuorumPeerMain“的错误,后面替换apache-zookeeper-3.5.5-bin.tar.gz版本后,运行命令成功启动!所以各位网友一定要下载对应的版本,不然就会和我一样哦!!!!!
Kafka的安装
- 下载地址:http://kafka.apache.org/downloads ,注意下载Binary downloads类型,不要下载源文件,这种方便使用。下载后,解压放在相应的目录下, 路径中最好不要出现空格、中文
Kafka入门级(一) Windows环境下安装 - 进入kafka配置文件所在目录 E:\kafka\kafka_2.12-2.3.0\config
- 找到配置文件 server.properties 并进行编辑:log.dirs=/tmp/kafka-logs 修改成自己安装的目录,如:log.dirs=E:\\kafka\\kafka_2.12-2.3.0\\kafka-logs,需要注意:路径要么是"/"分割,要么是转义字符"\\",这样会生成正确的路径(层级,子目录),否则会出错
- 在server.properties文件中,zookeeper.connect=localhost:2181代表kafka所连接的zookeeper所在的服务器IP以及端口,可根据需要更改。本文在同一台机器上使用,故不用修改
- kafka会按照默认配置,在9092端口上运行,并连接zookeeper的默认端口2181
- 运行cmd,进入到kafka的安装目录
Kafka入门级(一) Windows环境下安装
接着运行
.\bin\windows\kafka-server-start.bat .\config\server.properties
到目前为止,zookeeper以及kafka都已正确运行。保持运行状态,不要关闭!!!!
Kafka创建主题
- 创建主题,命名为"theme",replicationfactor=1(因为只有一个kafka服务器在运行)。可根据集群中kafka服务器个数来修改replicationfactor的数量,以便提高系统容错性
- 运行cmd,进入到kafka的安装目录下的bin/windows目录下
Kafka入门级(一) Windows环境下安装
接着运行
kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic theme
出现上述图片的界面,即创建主题成功,此时该窗口可以暂时关闭!
创建生产者 Producer
- 运行cmd,进入到kafka的安装目录下的bin/windows目录下
- 运行命令,启动producter
kafka-console-producer.bat --broker-list localhost:9092 --topic theme
Kafka入门级(一) Windows环境下安装
出现上述图片的界面,即创建生产者成功,此时该窗口可以不能关闭!!!
创建消费者 Consumer
- 运行cmd,进入到kafka的安装目录下的bin/windows目录下
- 运行命令,启动consumer
kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic theme--from-beginning
Kafka入门级(一) Windows环境下安装
出现上述图片的界面,即创建消费者成功,此时该窗口可以不能关闭!!!
现在生产者、消费者均已成功创建,在producer命令行窗口中任意输入内容,回车在consumer命令行窗口中即可看到相应的内容,其中包括历史消费的消息也能够看到,如aa,vv等就是之前生产者生产的消息:
到这里,笔者就将自己亲自在Window下安装kafka的全部步骤分享给大家了,如有不对之处,恳请各位大佬积极指正,本人学疏才浅,您的点点滴滴指导就是我进步的阶梯,谢谢你们啦!!!!