将cp-schema-registry从4.1.2升级到5.5.0后,schema-registry无法启动。首先,它因错误而失败
ZULU_OPENJDK_VERSION=8=8.38.0.13
_=/usr/bin/env
===> User
uid=0(root) gid=0(root) groups=0(root)
===> Configuring ...
KAFKA_ADVERTISED_LISTENERS is required.
Command [/usr/local/bin/dub ensure KAFKA_ADVERTISED_LISTENERS] FAILED !
然后,我将KAFKA_ADVERTISED_LISTENERS作为环境变量添加到架构注册表部署规范中,然后它开始以不同的错误爬行。
java.lang.IllegalArgumentException: requirement failed: Configured end points kafka-broker-0.kafka.dev1:9092 in advertised listeners are already registered by broker 1
at kafka.server.KafkaServer.$anonfun$createBrokerInfo$3(KafkaServer.scala:436)
at kafka.server.KafkaServer.$anonfun$createBrokerInfo$3$adapted(KafkaServer.scala:434)
at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:62)
at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:55)
at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:49)
at kafka.server.KafkaServer.createBrokerInfo(KafkaServer.scala:434)
at kafka.server.KafkaServer.startup(KafkaServer.scala:293)
at io.confluent.support.metrics.SupportedServerStartable.startup(SupportedServerStartable.java:114)
at io.confluent.support.metrics.SupportedKafka.main(SupportedKafka.java:66)
以前,此工作流程在融合的4.1.2版本中可以正常工作。
部署说明
containers:
- name: cp-schema-registry
image: "confluentinc/cp-schema-registry:5.5.0"
imagePullPolicy: Always
ports:
- containerPort: 8081
env:
- name: SCHEMA_REGISTRY_KAFKASTORE_TIMEOUT_MS
value: "5000"
- name: SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS
value: "PLAINTEXT://kafka-broker-0.kafka.dev1:9092"
- name: SCHEMA_REGISTRY_MASTER_ELIGIBILITY
value: "true"
- name: KAFKA_ADVERTISED_LISTENERS
value: "PLAINTEXT://kafka-broker-0.kafka.dev1:9092"
- name: KAFKA_ZOOKEEPER_CONNECT
value: "zookeeper-deployment-1-0.zoo1:2181"
- name: POD_NAME
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: metadata.name
- name: POD_IP
valueFrom:
fieldRef:
apiVersion: v1
fieldPath: status.podIP
- name: SCHEMA_REGISTRY_HOST_NAME
value: $(POD_IP)
- name: SCHEMA_REGISTRY_LISTENERS
value: http://$(POD_IP):8081
以下属性对于每个代理应该是唯一的。
KAFKA_BROKER_ID
(经纪人ID)
[KAFKA_ADVERTISED_HOST_NAME
和KAFKA_ADVERTISED_PORT
以了解代理在网络上的位置]
KAFKA_ADVERTISED_LISTENERS
是客户如何联系特定经纪人的方式;如果允许多个代理相同,那么其中一个将永远不会收到任何生产者/消费者请求
https://github.com/confluentinc/examples/blob/5.3.1-post/cp-all-in-one/docker-compose.yml