记:一次kafka内外网访问设置

前言

公司的网络是隔离的,服务器网络与工作网络相互隔离,只能通过端口转发(Port Forwarding)功能中转到本地端口。
这会造成服务器的ip无法在本地直接连通。

这里记录下相关配置,便于后续查找。

环境描述

这里为了展现场景,直接使用docker模拟一个单节点环境。

1. zookeeper 搭建
docker run -d --name zookeeper --publish 22181:2181 --volume /etc/localtime:/etc/localtime zookeeper:3.5
2. kafka 搭建
  • 修改前
docker run -d --name kafka --publish 9092:9092 --link zookeeper --env KAFKA_ZOOKEEPER_CONNECT=zookeeper:2181   --env KAFKA_ADVERTISED_HOST_NAME=172.16.1.146 --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime  wurstmeister/kafka:1.0.0
  • 修改后
docker run -d --network host --name kafka  --env KAFKA_ZOOKEEPER_CONNECT=127.0.0.1:22181   --env KAFKA_ADVERTISED_HOST_NAME=kafkahost --env KAFKA_ADVERTISED_PORT=9092 --volume /etc/localtime:/etc/localtime  wurstmeister/kafka:1.0.0
  • 其中kafkahost为172.16.1.146主机的hostname。

容器内生成的/opt/kafka/config/server.properties配置部分展现

[root@kafkahost ~]# docker exec 5650801499fb cat /opt/kafka/config/server.properties

broker.id=-1

listeners=PLAINTEXT://:9092

advertised.listeners=PLAINTEXT://kafkahost:9092

......

着重注意listeners和advertised.listeners。
listeners需要监听所有来源。
此处配置kafkahost主要是内外网络隔离,无法联通,通过本地hosts配置进行连接。

3. 本地开发添加hosts(与服务器隔离的网络,通过端口中转,将远程端口中转到本地)

127.0.0.1 kafkahost

附录:部分命令

1.监听端口消息

主要用来监听消息是否到达,排查网络问题

tcpdump -i eth0  -A -s 0 'tcp port 9092 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)' |grep -A 10 'PLAYTIMES_SEND'
2.kafka服务启动
bin/kafka-server-start.sh -daemon ../config/server.properties
3.创建一个主题
## --replication-factor 1   #复制1份
## --partitions  #分区
bin/kafka-topics.sh --create --zookeeper localhost:22181 --replication-factor 1 --partitions 10 --topic test
4.查看主题
## 查看topic的详细信息
bin/kafka-topics.sh --zookeeper 127.0.0.1:22181 --topic test --describe
# 查看topic列表
bin/kafka-topics.sh --zookeeper 127.0.0.1:22181 --list
5.为topic增加partition

只能增加分区,不能减少分区,请谨慎添加。

bin/kafka-topics.sh --zookeeper 127.0.0.1:22181 --alter --partitions 20 --topic test
6.创建指定主题的生产者
bin/kafka-console-producer.sh --broker-list 127.0.0.1:9092 --topic test
7.运行一个消费者
bin/kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 --topic test --from-beginning
8.查看消费情况
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group test-consumer-group
9.查看group
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

微信扫一扫关注该公众号
欢迎关注我的微信公众号

  • 3
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值