客户端无法连接kafka问题
docker-compose.yaml 文件中
kafka:
image: wurstmeister/kafka
container_name: kafka
restart: always
ports:
- 9092:9092
environment:
TZ: Asia/Shanghai
KAFKA_BROKER_ID: 0
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
KAFKA_LISTENERS: PLAINTEXT://:9092
#network_mode: "host"
depends_on:
- zookeeper
当没有设置 KAFKA_LISTENERS 和 KAFKA_ADVERTISED_LISTENERS 这两个配置时, 由于客户端连接kafka的首先是与zookeeper连接,然后通过zookeeper获取kafka的ip和端口, 如果不设置 KAFKA_LISTENERS 和 KAFKA_ADVERTISED_LISTENERS 这两个配置,那么zookeeper就用默认的 docker 容器名代替kafka的ip, 然而我们在远程连接kafka的时候肯定不能够使用容器名去连接,所以需要通过 KAFKA_ADVERTISED_LISTENERS 设置对应的ip去连接。
1 kafka 可以脱离 zookeeper 单独使用吗?为什么? kafka 不能脱离 zookeeper 单独使用,
因为 kafka 使用 zookeeper 管理和协调 kafka 的节点服务器。 2 kafka 有几种数据保留的策略 kafka 有两种数据保存策略:
按照过期时间保留 按照存储的消息大小保留。 3 kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理? 这个时候 kafka 会执行数据清除工作,时间和大小不论那个满足条件,都会清空数据。 4 什么情况会导致 kafka 运行变慢 cpu 性能瓶颈
磁盘读写瓶颈
网络瓶颈
5 使用 kafka 集群需要注意什么? 集群的数量不是越多越好,最好不要超过 7 个,
因为节点越多,消息复制需要的时间就越长,整个群组的吞吐量就越低。