【问题标题】:Apache Kafka consumer groups and microservices running on Kubernetes, are they compatible?在 Kubernetes 上运行的 Apache Kafka 消费者组和微服务,它们是否兼容?
【发布时间】:2017-11-20 22:56:46
【问题描述】:

到目前为止,我一直在使用 Spring Boot 应用程序(带有 Spring Cloud Stream)和运行 Kafka,但没有任何支持基础架构 (PaaS)。

由于我们的企业平台在 Kubernetes 上运行,我们需要将这些 Spring Boot 应用程序迁移到 K8s 中,以允许应用程序扩展等等。显然,每个应用程序都会有多个实例,因此我们将为每个应用程序定义一个消费者组,以确保每条消息的唯一传递和处理。

Kafka 将在 Kubernetes 之外运行。

现在我的疑问是:由于部署在k8s上的应用是通过k8s服务访问的,该服务抽象了底层的pod,个别应用pod不能直接在k8s集群外访问,kafka不知道怎么调用消费者组的个别实例来传递消息,会吗?

我怎样才能让它们一起工作?

【问题讨论】:

    标签: apache-kafka kubernetes openshift microservices spring-cloud-stream


    【解决方案1】:

    Kafka 代理不会将数据推送给客户端。而是客户端 poll() 并从代理中提取数据。只要消费者可以连接到引导服务器,并且您将 Kafka 代理设置为通告客户端可以连接的 IP 和端口并 poll(),那么一切都会正常工作。

    【讨论】:

      【解决方案2】:

      Spring Cloud Data Flow 能否解决您控制部署实例数量的需求?

      并且,有一个社区为 OpenShift 发布了 Spring Cloud Data Flow 服务器: https://github.com/donovanmuller/spring-cloud-dataflow-server-openshift

      【讨论】:

      • 感谢您提供有关 OpenShift 的信息,我会尝试一下。
      猜你喜欢
      • 1970-01-01
      • 2019-11-01
      • 2014-12-30
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-03
      相关资源
      最近更新 更多