我试图用strimzi部署kafka,问题是,它将kafka代理暴露为负载平衡器,并分配给他们一个外部IP。我想卡夫卡经纪人可以在内部和暴露通过一个负载平衡器只。下面是我的部署文件。
apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
name: my-cluster
spec:
kafka:
version: 3.1.0
replicas: 2
listeners:
- name: plain
port: 9092
type: internal
tls: false
- name: external
port: 9094
type: loadbalancer
tls: false
config:
offsets.topic.replication.factor: 2
transaction.state.log.replication.factor: 2
transaction.state.log.min.isr: 2
default.replication.factor: 2
min.insync.replicas: 2
inter.broker.protocol.version: "3.1"
storage:
type: ephemeral
zookeeper:
replicas: 2
storage:
type: ephemeral下面集群的屏幕截图

如您所见,有3个负载平衡器与外部IP的分配,而我希望它是一个负载均衡器与外部IP和2个卡夫卡经纪人。
发布于 2022-05-18 20:27:57
是的,基于卡夫卡发现协议,这种行为是正确的。所以首先让我们了解一下-
现在我们知道Kafka客户端直接连接到代理发送/接收记录,负载平衡器只进入初始连接的图片,它将客户机重定向到任何一个可用的broker。现在假设,如果我们也将负载均衡器用于随后的连接,那么会发生什么--负载均衡器会将客户机连接到任何可用的代理,这些代理可能有或可能没有客户机想要连接的分区领导者。所以Kafka使用上面描述的发现协议来处理这件事。
发布于 2022-04-29 11:07:50
这是因为卡夫卡是如何设计的。客户端需要直接访问集群中的每个代理。因此,负载均衡器--虽然很方便地公开集群--实际上并没有负载平衡。它只是连接的路线。您可以在博客文章系列:https://strimzi.io/blog/2019/04/17/accessing-kafka-part-1/中找到更多关于它是如何工作和为什么工作的详细信息。
https://stackoverflow.com/questions/72056794
复制相似问题