Broker 可能不可用错误 Kafka 模式注册表 [英] Broker may not be available error Kafka schema registry

查看:70
本文介绍了Broker 可能不可用错误 Kafka 模式注册表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经使用 Kubernetes 部署和服务定义了 Kafka 和 Kafka 架构注册表配置.我使用 这个链接 作为环境的参考变量设置.但是,当我尝试使用注册表运行 Kafka 时,我看到架构注册表 pod 崩溃并在日志中显示错误消息:

I have defined Kafka and Kafka schema registry configuration using Kubernetes deployments and services. I used this link as a reference for the environment variables set up. However, when I try to run Kafka with registry I see that the schema registry pods crashes with an error message in the logs:

[kafka-admin-client-thread | adminclient-1] WARN
org.apache.kafka.clients.NetworkClient - [AdminClient
clientId=adminclient-1] Connection to node -1
(localhost/127.0.0.1:9092) could not be established. Broker may not be
available.
    [main] ERROR io.confluent.admin.utils.ClusterStatus - Error while getting broker list.
    java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Timed out waiting for
a node assignment.

这个错误可能是什么原因?

What could be the reason of this error?

apiVersion: v1
kind: Service
metadata:
  name: kafka-service
spec:
  ports:
    - name: client
      port: 9092
  selector:
    app: kafka
    server-id: "1"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kafka-1
spec:
  selector:
    matchLabels:
      app: kafka
      server-id: "1"
  replicas: 1
  template:
    metadata:
      labels:
        app: kafka
        server-id: "1"
    spec:
      volumes:
        - name: kafka-data
          emptyDir: {}
      containers:
        - name: server
          image: confluentinc/cp-kafka:5.1.0
          env:
            - name: KAFKA_ZOOKEEPER_CONNECT
              value: zookeeper:2181
            - name: KAFKA_ADVERTISED_LISTENERS
              value: PLAINTEXT://localhost:9092
            - name: KAFKA_BROKER_ID
              value: "2"
            - name: KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR
              value: "1"
          ports:
            - containerPort: 9092
          volumeMounts:
            - mountPath: /var/lib/kafka
              name: kafka-data
---
apiVersion: v1
kind: Service
metadata:
  name: schema-registry-service
spec:
  ports:
    - name: client
      port: 8081
  selector:
    app: kafka-schema-registry
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kafka-schema-registry
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kafka-schema-registry
  template:
    metadata:
      labels:
        app: kafka-schema-registry
    spec:
      containers:
        - name: kafka-schema-registry
          image: confluentinc/cp-schema-registry:5.1.0
          env:
            - name: SCHEMA_REGISTRY_KAFKASTORE_CONNECTION_URL
              value: zookeeper:2181
            - name: SCHEMA_REGISTRY_HOST_NAME
              value: localhost
            - name: SCHEMA_REGISTRY_LISTENERS
              value: "http://0.0.0.0:8081"
            - name: SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS
              value: PLAINTEXT://localhost:9092
          ports:
            - containerPort: 8081

推荐答案

您已配置 Schema Registry 以在 kafka:9092 处查找 Kafka 代理,但您还配置了 Kafka 代理将其地址广告为 localhost:9092.

You've configured Schema Registry to look for the Kafka broker at kafka:9092, but you've also configured the Kafka broker to advertise its address as localhost:9092.

我不是特别熟悉 Kubernetes,但这篇文章 描述了在使用容器、IaaS 等时原则上如何处理网络配置.

I'm not familiar with Kubernetes specifically, but this article describes how to handle networking config in principle when using containers, IaaS, etc.

这篇关于Broker 可能不可用错误 Kafka 模式注册表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆