【问题标题】:Best practice deploying kafka connector in a distributed mode on kubernetes在 kubernetes 上以分布式模式部署 kafka 连接器的最佳实践
【发布时间】:2020-08-03 08:49:37
【问题描述】:

我是 Kubernetes 新手,正在尝试在 kubernetes 上以分布式模式部署 kafka 连接器。我很清楚worker和connector属性的设置,但是kubernetes部署的最佳实践是什么?我是否应该部署两个 Pod,每个 Pod 有一个工作人员,两个 Pod 中的两个工作人员共享相同的消费者/生产者组 ID?还是其他配置,例如两个工人作为一个 pod 中的两个容器?我希望我的问题很清楚,非常感谢!

【问题讨论】:

    标签: kubernetes apache-kafka-connect


    【解决方案1】:

    简答:

    您应该部署两个或更多 pod,每个 pod 有一个消费者容器。

    加长版:

    这取决于您要达到的目标。 Pod 是 Kubernetes 世界中最小的可部署计算单元。如果两个或多个容器紧密耦合,它们应该并排放置在一个 pod 中。

    对于您当前的用例,使用 Kubernetes(在许多其他用例之外)的好处是您可以通过增加副本轻松地水平扩展消费者数量,从而增加 pod 的数量。这些消费者需要共享相同的消费者组 id。 (制作人的故事也差不多)

    希望有帮助!

    【讨论】:

    • 谢谢!这是非常有帮助的。我只有两个后续问题:1)当您看到“紧密耦合”时,什么是一个好的用例? 2)对于分布式模式的kafka连接器,worker会有不同的rest.port号,但是共享group-id。所以它不能仅仅通过增加副本来水平缩放。如果我错了,请纠正我。
    • 1) 紧密耦合的容器可以用于监控或日志转发,它需要靠近主容器并访问它推送到其他地方的数据。 2)我不明白为什么您需要为消费者提供不同的端口号。只要它们位于自己的 pod 中,它们之间就不会发生端口冲突。
    • 我的意思是在分布式模式下配置不同的worker,每个worker需要不同的rest.port号。 docs.confluent.io/current/connect/userguide.html
    • 实际上,如果每个工作人员都坐在自己的 pod 中,您就不会这样做,因为 pod 会有自己的内部 IP。你能试试看是否有效吗?
    • 所以如果我们不给不同的 pod/worker 提供不同的 rest.port 号,那么它就像副本大小为 2 的 pod。我不认为它会是真实的分布式模式。一项工作结束后,您能否在其他工人之间重新平衡连接器?我不这么认为。
    猜你喜欢
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    • 2020-04-27
    • 2023-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多