1、搭建
注意:要关闭防火墙
未特殊声明3台机器都执行一样的操作,建议使用xshell的发送键输入到所有会话
1.1 准备
安装包、3个linux机器
zookeeper:
https://mirrors.bfsu.edu.cn/apache/zookeeper/zookeeper-3.6.3/apache-zookeeper-3.6.3-bin.tar.gz
kafka:
https://mirrors.tuna.tsinghua.edu.cn/apache/kafka/2.8.0/kafka_2.12-2.8.0.tgz
解压zookeeper和kafka,并重命名
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
tar -zxvf kafka_2.12-2.8.0.tgz
mv apache-zookeeper-3.6.3-bin zookeeper && mv kafka_2.12-2.8.0 kafka
1.2 zookeeper启动
创建zookeeper的配置文件
cp ./zookeeper/conf/zoo_sample.cfg ./zookeeper/conf/zoo.cfg
修改配置文件
vim ./zookeeper/conf/zoo.cfg
# 目录文件
dataDir=/opt/kafka/zookeeper/data
# 手动添加集群
server.0=192.168.67.67:2888:3888
server.1=192.168.67.68:2888:3888
server.2=192.168.67.69:2888:3888
在dataDir目录下创建文件, 内容值和集群相对应,例如68
这个服务器值为1
mkdir ./zookeeper/data
echo "0">./zookeeper/data/myid
启动zookeeper
./zookeeper/bin/zkServer.sh start
1.3 kafka启动
修改kafka的环境变量
vi /etc/profile
添加如下环境变量
export KAFKA_HOME=/opt/kafka/kafka
export PATH=$KAFKA_HOME/bin:$PATH
执行下面命令生效
source /etc/profile
修改kafka的配置文件
vim ./kafka/config/server.properties
# 第一个节点为零,一次加1,不能重复
broker.id=0
# 设置IP
listeners=PLAINTEXT://192.168.67.68:9092
# log.dirs=/tmp/kafka-logs
log.dirs=/opt/kafka/kafka/kafka-logs
# zookeeper.connect=localhost:2181
zookeeper.connect=192.168.67.67:2181,192.168.67.68:2181,192.168.67.69:2181
启动kafka
kafka-server-start.sh /opt/kafka/kafka/config/server.properties
后台启动kafka
kafka-server-start.sh -daemon /opt/kafka/kafka/config/server.properties
2、使用
2.1 常见的命令
# 创建主题
kafka-topics.sh --zookeeper 192.168.67.67:2181,192.168.67.68:2181,192.168.67.69:2181 --create --replication-factor 2 --partitions 3 --topic userlog
kafka-topics.sh --zookeeper 192.168.67.67:2181 --create --replication-factor 2 --partitions 6 --topic studentlog
# 删除主题
kafka-topics.sh --zookeeper 192.168.67.67:2181 --delete --replication-factor 2 --partitions 6 --topic baidu
# 查看所有主题
kafka-topics.sh --zookeeper 192.168.67.67:2181,192.168.67.68:2181,192.168.67.69:2181 --list
kafka-topics.sh --zookeeper 192.168.67.67:2181,192.168.67.68:2181,192.168.67.69:2181 --describe --topic userlog
# 创建生产者,注意端口号为9092
kafka-console-producer.sh --broker-list 192.168.67.67:9092,192.168.67.68:9092,192.168.67.69:9092 --topic userlog
# 创建消费者
kafka-console-consumer.sh --topic userlog quickstart-events --from-beginning --bootstrap-server 192.168.67.67:9092,192.168.67.69:9092,192.168.67.69:9092
结语
码字不易,希望能多多支持。一名四年工作经验的程序猿,目前从事物流行业的工作,有自己的小破网站amoqi.cn。欢迎大家关注公众号【CoderQi】,一起来交流JAVA知识,包括但不限于SpringBoot+微服务,更有奇奇JAVA学习过程中的工具、面试资料和专业书籍等免费放送,也可以加个人联系方式,见公众号下方工具栏上。