最近一直在搞springboot整合kafka,于是自己搭建了一套单机的kafka环境,以便用于测试。现整理如下的笔记,发上来和大家分享。
一、kafka环境搭建
(1)、下载解压kafka_2.11-1.1.0.tgz,创建移动到kafka文件夹中。
wget http://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz
tar -xzvf kafka_2.11-1.1.0.tgz
mv kafka_2.11-1.1.0 /usr/local/kafka #移动到安装目录
(2)、kafka需要安装zookeeper使用,但kafka集成zookeeper,在单机搭建时可直接使用,只需配置kafka_2.11-1.1.0/config 下的“zookeeper.properties”。
以下是修改的zookeeper.properties配置参数:
mkdir /usr/local/kafka/zookeeper #创建zookeeper目录
mkdir -p /usr/local/kafka/log/zookeeper #创建zookeeper日志目录
cd /usr/local/kafka/config #进入配置目录
vi zookeeper.properties #编辑修改相应的参数
dataDir=/usr/local/kafka/zookeeper #zookeeper数据目录
dataLogDir=/usr/local/kafka/log/zookeeper #zookeeper日志目录
clientPort=2181
maxClientCnxns=100
tickTime=2000
initLimit=10
syncLimit=5
:wq! #保存退出
(3)、配置kafka_2.11-1.1.0/config下的“server.properties”,修改log.dirs和zookeeper.connect。前者是日志存放文件夹,后者是zookeeper连接地址(端口和clientPort保持一致),目录创建及参数配置如下:
mkdir /usr/local/kafka/log/kafka #创建kafka日志目录
cd /usr/local/kafka/config #进入配置目录
vi server.properties #编辑修改kafka相应的参数
broker.id=0
#topic可以删,默认是false
delete.topic.enable=true
#端口号,可不配置
port=9092
#服务器IP地址,也可修改为自己的服务器IP
host.name=192.254.64.128
log.dirs=/usr/local/kafka/log/kafka #日志存放路径,上面创建的目录
zookeeper.connect=localhost:2181 #zookeeper地址和端口,单机配置部署,localhost:2181
:wq! #保存退出
到此,kafka的单机环境就搭建成功了。
二、启动命令
(1)、启动zookeeper
/usr/local/kafka/bin/zookeeper-server-start.sh /usr/local/kafka/config/zookeeper.properties &
zookeeper正常启动日志如下
(2)、启动启动kakfa
/usr/local/kafka/bin/kafka-server-start.sh /usr/local/kafka/config/server.properties &
三、shell命令
./kafka-topics.sh --zookeeper 192.168.226.129:2182 --describe --topic orderTopic ;查看名字为orderTopic的topic
./kafka-topics.sh --zookeeper 192.168.226.129:2182 --list ;查看topic 列表
启动项目后报如下错误
本项目中采用springboot+kafka,springboot版本2.1.0.RELEASE,kafka版本2.2.0.RELEASE,换了多次版本后程序启动了
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.0.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- kafka 消息队列 -->
<dependency>
<groupId>org.springframework.kafka</groupId>
<artifactId>spring-kafka</artifactId>
<version>2.2.0.RELEASE</version>
</dependency>