Confluent Local服务启动失败:Schema Registry无法启动求助
Schema Registry启动失败(Confluent 7.3.2)
问题描述
执行confluent local services start命令时,ZooKeeper与Kafka均成功启动,但Schema Registry启动失败。已尝试销毁并重启服务,问题仍未解决。
环境信息
- JAVA_HOME:
JAVA_HOME is /usr/local/opt/openjdk@11 - Confluent版本:7.3.2
- 环境变量配置:
export CONFLUENT_HOME=/Users/adminuser/confluent-7.3.2 export PATH="${CONFLUENT_HOME}/bin:$PATH"
启动命令执行日志
~ » confluent local services start ramana@mbp The local commands are intended for a single-node development environment only, NOT for production usage. https://docs.confluent.io/current/cli/index.html Using CONFLUENT_CURRENT: /var/folders/k8/sd8b8dnn5n956nbdy4npjcyw0000gn/T/confluent.019095 Starting ZooKeeper ZooKeeper is [UP] Starting Kafka Kafka is [UP] Starting Schema Registry Error: Schema Registry failed to start
Schema Registry报错日志
[2023-03-18 19:45:47,156] ERROR [kafka-store-reader-thread-_schemas]: Error due to (io.confluent.kafka.schemaregistry.storage.KafkaStoreReaderThread:76) java.lang.RuntimeException: org.apache.kafka.common.protocol.types.SchemaException: Buffer underflow while parsing response for request with header RequestHeader(apiKey=FETCH, apiVersion=13, clientId=KafkaStore-reader-_schemas, correlationId=9) at io.confluent.kafka.schemaregistry.storage.KafkaStoreReaderThread.doWork(KafkaStoreReaderThread.java:302) at kafka.utils.ShutdownableThread.run(ShutdownableThread.scala:99) Caused by: org.apache.kafka.common.protocol.types.SchemaException: Buffer underflow while parsing response for request with header RequestHeader(apiKey=FETCH, apiVersion=13, clientId=KafkaStore-reader-_schemas, correlationId=9) at org.apache.kafka.clients.NetworkClient.parseResponse(NetworkClient.java:826) at org.apache.kafka.clients.NetworkClient.handleCompletedReceives(NetworkClient.java:970) at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:652) at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:280) at org.apache.kafka.clients.consumer.internals.ConsumerNetworkClient.poll(ConsumerNetworkClient.java:251) at org.apache.kafka.clients.consumer.KafkaConsumer.pollForFetches(KafkaConsumer.java:1311) at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1247) at org.apache.kafka.clients.consumer.KafkaConsumer.poll(KafkaConsumer.java:1173) at io.confluent.kafka.schemaregistry.storage.KafkaStoreReaderThread.doWork(KafkaStoreReaderThread.java:197) ... 1 more Caused by: java.nio.BufferUnderflowException at java.base/java.nio.Buffer.nextGetIndex(Buffer.java:651) at java.base/java.nio.HeapByteBuffer.getInt(HeapByteBuffer.java:402) at org.apache.kafka.common.protocol.ByteBufferAccessor.readInt(ByteBufferAccessor.java:43) at org.apache.kafka.common.message.ResponseHeaderData.read(ResponseHeaderData.java:95) at org.apache.kafka.common.message.ResponseHeaderData.<init>(ResponseHeaderData.java:67) at org.apache.kafka.common.requests.ResponseHeader.parse(ResponseHeader.java:71) at org.apache.kafka.common.requests.AbstractResponse.parseResponse(AbstractResponse.java:109) at org.apache.kafka.clients.NetworkClient$DefaultClientInterceptor.parseResponse(NetworkClient.java:1531) at org.apache.kafka.clients.NetworkClient.parseResponse(NetworkClient.java:819) ... 9 more [2023-03-18 19:45:47,156] INFO [kafka-store-reader-thread-_schemas]: Stopped (io.confluent.kafka.schemaregistry.storage.KafkaStoreReaderThread:66) [2023-03-18 19:46:46,095] ERROR Error starting the schema registry (io.confluent.kafka.schemaregistry.rest.SchemaRegistryRestApplication:77) io.confluent.kafka.schemaregistry.exceptions.SchemaRegistryInitializationException: io.confluent.kafka.schemaregistry.exceptions.SchemaRegistryTimeoutException: Timed out waiting for join group to complete at io.confluent.kafka.schemaregistry.storage.KafkaSchemaRegistry.init(KafkaSchemaRegistry.java:334) at io.confluent.kafka.schemaregistry.rest.SchemaRegistryRestApplication.initSchemaRegistry(SchemaRegistryRestApplication.java:75) at io.confluent.kafka.schemaregistry.rest.SchemaRegistryRestApplication.configureBaseApplication(SchemaRegistryRestApplication.java:90) at io.confluent.rest.Application.configureHandler(Application.java:285) at io.confluent.rest.ApplicationServer.doStart(ApplicationServer.java:270) at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:73) at io.confluent.kafka.schemaregistry.rest.SchemaRegistryMain.main(SchemaRegistryMain.java:44) Caused by: io.confluent.kafka.schemaregistry.exceptions.SchemaRegistryTimeoutException: Timed out waiting for join group to complete at io.confluent.kafka.schemaregistry.leaderelector.kafka.KafkaGroupLeaderElector.init(KafkaGroupLeaderElector.java:211) at io.confluent.kafka.schemaregistry.storage.KafkaSchemaRegistry.init(KafkaSchemaRegistry.java:329) ... 6 more
解决方法
1. 检查Kafka Listener配置
Schema Registry需要正常连接Kafka,确保Kafka的listener配置正确。修改${CONFLUENT_HOME}/etc/kafka/server.properties:
listeners=PLAINTEXT://localhost:9092 advertised.listeners=PLAINTEXT://localhost:9092
然后重启服务:
confluent local services kafka restart confluent local services schema-registry start
2. 调整Schema Registry超时时间
针对日志中的Timed out waiting for join group to complete错误,修改${CONFLUENT_HOME}/etc/schema-registry/schema-registry.properties:
schema.registry.group.init.timeout.ms=30000
重启Schema Registry生效。
3. 清理损坏的Kafka数据
如果_schemas主题存在损坏数据,会导致Schema Registry无法读取。执行以下操作:
confluent local services stop confluent local destroy confluent local services start
4. 确认Java版本兼容性
Confluent 7.3.2支持Java 11/17,执行java -version确认当前使用的是OpenJDK 11,确保JAVA_HOME指向正确路径且无其他Java版本干扰。
内容的提问来源于stack exchange,提问作者Raman
相关产品推荐
相关产品推荐

