温馨提示×

debian kafka连接如何设

小樊
41
2026-09-19 01:21:09
栏目: 智能运维

下面分几种常见场景,给你讲一下 Debian 上 Kafka 的连接配置方式(以 Kafka 2.x/3.x 为例,Java 客户端为主)。


一、Debian 上 Kafka 服务本身配置(server.properties)

Kafka broker 启动前,最重要的是 listeners 和 advertised.listeners。

1. 单机能连(本地)

listeners=PLAINTEXT://:9092
advertised.listeners=PLAINTEXT://localhost:9092

2. 其他机器能连(常见)

listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://<服务器IP>:9092

⚠️ advertised.listeners 是客户端真正连接的地址


二、Debian 防火墙 / 端口

sudo ufw allow 9092/tcp

或(iptables):

sudo iptables -A INPUT -p tcp --dport 9092 -j ACCEPT

三、Java 客户端连接(最常见)

1. Maven 依赖

<dependency>
  <groupId>org.apache.kafka</groupId>
  <artifactId>kafka-clients</artifactId>
  <version>3.6.0</version>
</dependency>

2. Producer 连接示例

Properties props = new Properties();
props.put("bootstrap.servers", "192.168.1.10:9092");
props.put("key.serializer", "org.apache.kafka.common.serialization.StringSerializer");
props.put("value.serializer", "org.apache.kafka.common.serialization.StringSerializer");

KafkaProducer<String, String> producer = new KafkaProducer<>(props);

3. Consumer 连接示例

Properties props = new Properties();
props.put("bootstrap.servers", "192.168.1.10:9092");
props.put("group.id", "test-group");
props.put("key.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");
props.put("value.deserializer", "org.apache.kafka.common.serialization.StringDeserializer");

KafkaConsumer<String, String> consumer = new KafkaConsumer<>(props);
consumer.subscribe(List.of("test-topic"));

四、命令行连接测试(Debian)

1. 生产者

kafka-console-producer.sh \
  --broker-list localhost:9092 \
  --topic test

2. 消费者

kafka-console-consumer.sh \
  --bootstrap-server localhost:9092 \
  --topic test \
  --from-beginning

五、常见连接失败原因

问题 原因
Connection refused Kafka 没起 / 端口不对
能连但马上断 advertised.listeners 配错
远程连不上 防火墙 / 云安全组
域名解析失败 hosts 或 DNS 问题

六、如果你用的是 Docker(Debian 上)

KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://宿主机IP:9092
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092

如果你能告诉我:

  • 是 本地 / 远程 / Docker / 云服务器
  • 用 Java / Python / Go / 命令行

我可以直接给你一份可复制的配置。

0 踩