在我们的应用程序中,有多个不同 kafka 主题的消费者,例如 Cosumer C1、Cosumer C2、Cosumer C3、Cosumer C4、Cosumer C5 以及不同的 kafka 主题,例如主题 1、主题 2、主题 3、主题 4 和主题 5。这意味着它们是每个生产者和消费者对。当我在 Kubernetes 的单个微服务的 POD/进程上运行这一切时,它们不是任何问题。
我的问题是,我想创建 5 个 Pod,每个 pod 都由其主题中的 Cosumer - Producer 组成,如下所示:-
POD 1:- 消费者 1 - 主题 1
POD 2:- 消费者 2 - 主题 2
POD 3:- 消费者 3 - 主题 3
POD 4:- 消费者 4 - 主题 4
POD 5:- 消费者 5 - 主题 5
意味着每个 POD/进程只有一个主题,它们不应该相互依赖。
他们的配置对这个有要求吗,请帮我解决一下。谢谢
您可以在一个 Pod 中运行 5 个容器,将每个主题名称作为环境变量传递给容器。
如果您希望所有容器都相同(主题名称除外),您可以编写一个 Helm 模板,并在每个容器的主题上循环
例如,从这样的值文件开始
application:
image: myapp
tag: latest
topics: [1,2,3,4,5]
还有像这样的东西
apiVersion: apps/v1
kind: Deployment
metadata:
name: consumer-example
labels:
app: consumer
spec:
replicas: 1
selector:
matchLabels:
app: consumer
template:
metadata:
labels:
app: consumer
spec:
containers:
{{ for i, t := range .Values.topics }}
- name: consumer-{{ i }}
image: {{ .Values.application.image }}:{{ .Values.application.tag }}
env:
- name: KAFKA_TOPIC
value: {{ t }}
{{ end }}
或者,您可以简单地使用多线程使一个应用程序订阅多个主题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)