栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Kakfa集群安装和部署

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kakfa集群安装和部署

1. 安装启动kafka 1.1. 使用Docker方式进行安装 1.1.1. 下载镜像
docker pull wurstmeister/zookeeper
docker pull wurstmeister/kafka
1.1.2. 启动

启动Zookeeper容器

docker run -d --name zookeeper -p 2181:2181 -t wurstmeister/zookeeper
1.1.2.1. 启动kafka容器,其中192.168.59.101是宿主机的IP地址
docker run -d --name kafka --publish 9092:9092 
--link zookeeper 
--env KAFKA_ZOOKEEPER_ConNECT=zookeeper:2181 
--env KAFKA_ADVERTISED_HOST_NAME=192.168.59.101 
--env KAFKA_ADVERTISED_PORT=9092 
--volume /etc/localtime:/etc/localtime 
wurstmeister/kafka:latest
1.1.2.2. kafka docker 启动参数说明

-e KAFKA_BROKER_ID=0 在kafka集群中,每个kafka都有一个BROKER_ID来区分自己-e KAFKA_ZOOKEEPER_ConNECT=192.168.155.56:2181/kafka 配置zookeeper管理kafka的路径192.168.155.56:2181/kafka-e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://192.168.155.56:9092 把kafka的地址端口注册给zookeeper-e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092 配置kafka的监听端口-v /etc/localtime:/etc/localtime 容器时间同步虚拟机的时间 1.1.3. 验证启动

运行 docker ps,找到kafka的 ConTAINER ID,运行 docker exec -it ${ConTAINER ID} /bin/bash,进入kafka容器。进入kafka默认目录 /opt/kafka_2.11-0.10.1.0

2. kafka 常用配置项说明

配置文件位置:${KAFKA_HOME}/config/server.properties

修改内容如下

# 默认配置 advertised.listeners=PLAINTEXT://your.host.name:9092
advertised.listeners=PLAINTEXT://${本机服务器IP}:9092
# broker.id标识本机
broker.id=0
# log.dirs
log.dirs=/data/logs/kafka-logs
# zookeeper.connect指定连接的zookeeper集群地址
    ip为服务器iphostname和端口是用来建议给生产者和消费者使用的,如果没有设置,将会使用listeners的配置,如果listeners也没有配置,将使用java.net.InetAddress.getCanonicalHostName()来获取这个hostname和port,对于ipv4,基本就是localhost了。"PLAINTEXT"表示协议,可选的值有PLAINTEXT和SSL,hostname可以指定IP地址,也可以用"0.0.0.0"表示对所有的网络接口有效,如果hostname为空表示只对默认的网络接口有效。也就是说如果你没有配置advertised.listeners,就使用listeners的配置通告给消息的生产者和消费者,这个过程是在生产者和消费者获取源数据(metadata)。
3. 集群配置 3.1. 环境说明

三台机器:192.168.244.128 192.168.244.130 192.168.244.131

3.1.1. 三台主机上的配置内容
# 192.168.244.128
broker.id=1
log.dirs=/data/logs/kafka-logs
zookeeper.connect=192.168.244.128:2181,192.168.244.130:2181,192.168.244.131:2181

# 192.168.244.130  
broker.id=2
log.dirs=/data/logs/kafka-logs
zookeeper.connect=192.168.244.128:2181,192.168.244.130:2181,192.168.244.131:2181

# 192.168.244.131
broker.id=3
log.dirs=/data/logs/kafka-logs
zookeeper.connect=192.168.244.128:2181,192.168.244.130:2181,192.168.244.131:2181
3.2. 启动

在三个节点上分别执行nohup ./kafka-server-start.sh -daemon ../config/server.properties &

4. Kafka 基本操作命令
# 创建TOPIC
./kafka-topics.sh --create --zookeeper 192.168.244.128:2181,192.168.244.130:2181,192.168.244.131:2181  --replication-factor 3 --partitions 6 --topic kfk_test

#列出创建的topic
./kafka-topics.sh --list --zookeeper 192.168.244.128:2181,192.168.244.130:2181,192.168.244.131:2181 

# 生成数据,注意这里的端口号是kafka的端口  9092
./kafka-console-producer.sh -broker-list 192.168.244.128:9092,192.168.244.130:9092,192.168.244.131:9092   --topic kfk_test

# 消费生产数据,kafka 0.9版本之前用zookeeper 
./kafka-console-consumer.sh --zookeeper 192.168.244.128:2181,192.168.244.130:2181,192.168.244.131:2181  --from-beginning --topic kfk_test

# kafka 0.9版本之后不推荐zookeeper方式,仍然支持,但逐渐会被取消,推荐bootstrap-server方式,注意这里的端口号是kafka的端口  9092
./kafka-console-consumer.sh --bootstrap-server  192.168.244.128:9092,192.168.244.130:9092,192.168.244.131:9092  --from-beginning --topic kfk_test

#查看指定topic信息
./kafka-topics.sh --describe --zookeeper 192.168.244.128:2181,192.168.244.130:2181,192.168.244.131:2181 --topic kfk_test

#删除kafka中的topic
./kafka-topics.sh --delete --zookeeper 192.168.244.128:2181,192.168.244.130:2181,192.168.244.131:2181 --topic kfk_test

# 删除zookeeper中的topic信息
rmr /brokers/topics/kfk_test
rmr /config/topics/kfk_test
rmr /admin/delete_topics/kfk_test
rmr /consumers/kfk_test-group

# 删除topic数据相关的目录
rm -rf /var/local/kafka/data/kfk_test*
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703988.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号