首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kafka在strimzi上的部署

kafka在strimzi上的部署
EN

Stack Overflow用户
提问于 2022-04-29 10:50:27
回答 2查看 392关注 0票数 0

我试图用strimzi部署kafka,问题是,它将kafka代理暴露为负载平衡器,并分配给他们一个外部IP。我想卡夫卡经纪人可以在内部和暴露通过一个负载平衡器只。下面是我的部署文件。

代码语言:javascript
复制
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个卡夫卡经纪人。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-05-18 20:27:57

是的,基于卡夫卡发现协议,这种行为是正确的。所以首先让我们了解一下-

  1. 是通过身份验证的Kafka客户端,在第一个连接期间连接到任何代理(正在使用Kubernetes服务进行连接)代理返回一个/多个主题的元数据。在获得所需领导人分区的详细信息之后,客户端打开到该特定代理的新连接。即使客户端需要连接到第一个代理,它也会终止现有的连接(#1),并使用该代理启动一个新的连接。

现在我们知道Kafka客户端直接连接到代理发送/接收记录,负载平衡器只进入初始连接的图片,它将客户机重定向到任何一个可用的broker。现在假设,如果我们也将负载均衡器用于随后的连接,那么会发生什么--负载均衡器会将客户机连接到任何可用的代理,这些代理可能有或可能没有客户机想要连接的分区领导者。所以Kafka使用上面描述的发现协议来处理这件事。

票数 1
EN

Stack Overflow用户

发布于 2022-04-29 11:07:50

这是因为卡夫卡是如何设计的。客户端需要直接访问集群中的每个代理。因此,负载均衡器--虽然很方便地公开集群--实际上并没有负载平衡。它只是连接的路线。您可以在博客文章系列:https://strimzi.io/blog/2019/04/17/accessing-kafka-part-1/中找到更多关于它是如何工作和为什么工作的详细信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72056794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档