当前位置:   article > 正文

kafka安装配置(包含内外网设置)_kafka单机部署外部访问

kafka单机部署外部访问

这里使用的kafka安装包:kafka_2.13-3.4.0.tgz

kafka版本2.2+的版本,已经不需要依赖zookeeper来查看、创建topic,新版本使用--bootstrap-server替换老版本的--zookeeper-server。 


kafka里面两种监听配置

内网监听配置

listeners=PLAINTEXT://172.16.61.125:9092

配置完内网可以正常得去消费或者添加kfka数据
如果配置了advertised.listeners就无法正常访问消费

  1. advertised.listeners=PLAINTEXT://11.11.11.11:9092
  2. WARN [Consumer clientId=consumer-console-consumer-94880-1, groupId=console-consumer-94880] Error while fetching metadata with correlation id 2 : {ooxx=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient)

因为我的外网通讯虽然注册得zookeeper里面了,但是外网网络无法在kafka 集群机器上来回通讯导致问题,所以这个时候需要切换成内外网分流访问

内外网分流

方法1:

  1. listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
  2. listeners=INTERNAL://172.16.61.125:9092,EXTERNAL://172.16.61.125:19092
  3. advertised.listeners=INTERNAL://172.16.61.125:9092,EXTERNAL://11.11.11.11:19092
  4. inter.broker.listener.name=INTERNAL

方法2:

  1. listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
  2. listeners=INTERNAL://172.16.61.125:9092,EXTERNAL://11.11.11.11:19092
  3. advertised.listeners=INTERNAL://172.16.61.125:9092,EXTERNAL://11.11.11.11:19092
  4. inter.broker.listener.name=INTERNAL

注意这两的区别是listeners的EXTERNAL使用的ip不一样,一个使用内网ip,一个使用外网ip。

  •  如果你的kafka宿主机有外网网卡,只能用外网ip,若使用配置1,kafka通过listeners监听的两个端口都是内网网卡的数据,无法接收到外网网卡数据;
  •  如果你的kafka宿主机外网ip是映射来的,只能使用内网ip,原因也是上面说过的,不存在外网网卡,kafka启动监听就会报错,而使用内网ip有环境配置好的转发,可以接收到外网ip的数据。

在这里配置得 kafka内部访问端口与外部访问端口不能是一致得。

创建配置目录

  1. # 进入kafka目录
  2. [root@icoolkj kafka_2.13-3.4.0]#
  3. # 创建 data 目录
  4. [root@icoolkj kafka_2.13-3.4.0]# mkdir data
  5. [root@icoolkj kafka_2.13-3.4.0]# cd data
  6. # 创建 logs 目录
  7. [root@icoolkj data]# mkdir logs dataDir dataLogDir
  8. # 进入kafka的config配置目录
  9. [root@icoolkj data]# cd /home/kafka/kafka_2.13-3.4.0/config/
  10. # 配置kafka的server.properties配置文件
  11. [root@icoolkj config]# vi server.properties
  12. broker.id=0
  13. # 端口号
  14. port=9092
  15. # 主机地址,如果是单机可以直接使用127.0.0.1
  16. host.name=127.0.0.1
  17. # 日志存放路径
  18. log.dirs=/home/kafka/kafka_2.13-3.4.0/data/logs
  19. # 关联的zookeeper的地址和端口,如果是单机可以直接使用127.0.0.1
  20. zookeeper.connect=127.0.0.1:2181

附加完整的kafka配置文件详尽&启动脚本

  1. 1、完整的配置文件
  2. #grep -Ev '^#|^$' /soft/kafka/config/server.properties
  3. broker.id=0
  4. listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
  5. listeners=INTERNAL://172.16.61.125:9092,EXTERNAL://172.16.61.125:19092
  6. advertised.listeners=INTERNAL://172.16.61.125:9092,EXTERNAL://11.11.11.11:19092
  7. inter.broker.listener.name=INTERNAL
  8. num.network.threads=3
  9. num.io.threads=8
  10. socket.send.buffer.bytes=102400
  11. socket.receive.buffer.bytes=102400
  12. socket.request.max.bytes=104857600
  13. log.dirs=/soft/kafka/data/logs
  14. num.partitions=1
  15. num.recovery.threads.per.data.dir=1
  16. offsets.topic.replication.factor=1
  17. transaction.state.log.replication.factor=1
  18. transaction.state.log.min.isr=1
  19. log.retention.hours=168
  20. log.retention.check.interval.ms=300000
  21. zookeeper.connect=localhost:2181
  22. zookeeper.connection.timeout.ms=18000
  23. group.initial.rebalance.delay.ms=0
  24. 2、启动脚本
  25. #cat /etc/systemd/system/kafka.service
  26. [Unit]
  27. Description=kafka Service
  28. After=ssh.service
  29. [Service]
  30. User=root
  31. Restart=always
  32. Environment=JAVA_HOME=/data/jdk
  33. Type=forking
  34. ExecStart=/soft/kafka/bin/kafka-server-start.sh -daemon /soft/kafka/config/server.properties
  35. ExecReload=/bin/kill -s HUP $MAINPID
  36. ExecStop=/soft/kafka/bin/kafka-server-stop.sh
  37. [Install]
  38. WantedBy=multi-user.target

附加完整的zk的配置文件详尽&启动脚本

  1. 1、配置文件
  2. #grep -Ev '^#|^$' /soft/kafka/config/zookeeper.properties
  3. dataDir=/soft/kafka/data/dataDir
  4. dataLogDir=/soft/kafka/data/logs
  5. clientPort=2181
  6. maxClientCnxns=100
  7. tickTime=2000
  8. initLimit=10
  9. admin.enableServer=false
  10. 2、启动脚本
  11. #cat /etc/systemd/system/zk.service
  12. [Unit]
  13. Description=Zoopker Service
  14. After=ssh.service
  15. [Service]
  16. User=root
  17. Restart=always
  18. Environment=JAVA_HOME=/data/jdk
  19. Type=forking
  20. ExecStart=/soft/kafka/bin/zookeeper-server-start.sh -daemon /soft/kafka/config/zookeeper.properties
  21. ExecReload=/bin/kill -s HUP $MAINPID
  22. ExecStop=/soft/kafka/bin/zookeeper-server-stop.sh
  23. [Install]
  24. WantedBy=multi-user.target

功能验证

  1. 1、创建
  2. #cd /soft/kafka/bin
  3. #sh kafka-topics.sh --create --topic kafka_test --bootstrap-server 11.11.11.11:19092
  4. WARNING: Due to limitations in metric names, topics with a period ('.') or underscore ('_') could collide. To avoid issues it is best to use either, but not both.
  5. Created topic kafka_test.
  6. 2、查看
  7. #sh kafka-topics.sh --list --bootstrap-server 11.11.11.11:19092
  8. __consumer_offsets
  9. kafka_test
  10. 3、删除测试数据
  11. #sh kafka-topics.sh --delete --topic kafka_test --bootstrap-server 11.11.11.11:19092
  12. #sh kafka-topics.sh --list --bootstrap-server 11.11.11.11:19092
  13. __consumer_offsets

最后服务管理

  1. #systemctl daemon-reload
  2. #systemctl start zk; systemctl start kafka
  3. #systemctl enable zk; systemctl enable kafka

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/822405
推荐阅读
相关标签
  

闽ICP备14008679号