在Kubernetes上运行的Apache Kafka消费者群体和微服务是否兼容?

时间:2017-07-21 11:22:41

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

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

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

Kafka将在Kubernetes外面跑。

现在我的疑问是:由于部署在k8s上的应用程序是通过抽象底层pod的k8s服务访问的,而且单个应用程序pod不能直接访问k8s群集之外,Kafka不会获胜知道如何调用消费者组的各个实例来传递消息,是吗?

如何让它们一起工作?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

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

相关问题