You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot Kafka AdminClient无法连接REST端口,明文端口正常

问题排查与解决方案

核心原因

Kafka REST端口(8082)是Confluent REST Proxy的服务端口,仅支持HTTP/REST协议操作Kafka;而Spring Boot/Spring Cloud Streams底层使用的Kafka原生客户端(AdminClient、Producer、Consumer等)需要连接Kafka Broker的明文二进制协议端口(即你看到的40305),两者协议不兼容,因此用8082无法建立连接。

修复步骤

修改application.properties中的Kafka bootstrap配置,将REST端口替换为Broker明文端口:

spring.application.name=spring-cloud-streams-kafka
server.port=8080
spring.kafka.bootstrap-servers=localhost:40305  # 替换为Broker明文端口
spring.cloud.function.definition=PageEventConsumer

如果Spring Cloud Streams需要单独配置Broker地址,可额外添加:

spring.cloud.stream.kafka.binder.brokers=localhost:40305

问题背景信息

以下是你提供的项目配置与错误日志:

控制器代码

@RestController
@RequiredArgsConstructor
public class PageEventRestController {

    private final StreamBridge streamBridge;

  
  @GetMapping("publish/{topic}/{name}")
    public PageEvent publish(@PathVariable String topic, @PathVariable String name) {
        PageEvent pageEvent = new PageEvent(name, Math.random() < 0.5 ? "user1" : "user2", new Date(), new Random().nextInt(9000));
        streamBridge.send(topic, pageEvent);
        return pageEvent;
    }
}

原application.properties配置

spring.application.name=spring-cloud-streams-kafka
server.port=8080
spring.kafka.bootstrap-servers=localhost:8082
spring.cloud.function.definition=PageEventConsumer

错误日志

2024-10-07T16:37:55.440+01:00  INFO 18108 --- [spring-cloud-streams-kafka] [| 
adminclient-1] org.apache.kafka.clients.NetworkClient   : [AdminClient 
clientId=adminclient-1] Node -1 disconnected.

pom.xml依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka-streams</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-stream</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-stream-binder-kafka</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-stream-binder-kafka-streams</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka</artifactId>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-stream-test-binder</artifactId>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.kafka</groupId>
        <artifactId>spring-kafka-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

补充环境信息

  • 使用Confluent CLI启动Kafka:confluent local kafka start
  • Confluent CLI端口信息:
| Kafka REST Port | 8082  |
| Plaintext Ports | 40305 |

内容的提问来源于stack exchange,提问作者Haitam-Elgharras

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 14:40:54