时间:2025-05-30 09:05
人气:
作者:admin

在carbon中的event/publishers中,添加一个kafka的发布者,然后配置相关kafka配置即可,它依赖下面一些jar包,需要将它们添加到/lib目录
carbon/event下面的publishers以xml文件的形式被存储到文件目录/home/wso2carbon/wso2am-4.5.0/repository/deployment/server/eventpublishers下面,当你自己在carbon平台添加自定义的publisher后,由于这个目录没有挂载到磁盘,所以重启apim之后,自定义的publisher就丢失了;知道为什么会丢失,我们就可以对helm-charts进行优化了。
流程图

<?xml version="1.0" encoding="UTF-8"?>
<eventPublisher name="kafka_notice" processing="enable"
statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher">
<from streamName="org.wso2.apimgt.notification.stream" version="1.0.0"/>
<mapping customMapping="disable" type="json"/>
<to eventAdapterType="kafka">
<property name="topic">{{ .Values.kafka.topic }}</property>
<property name="meta.broker.list">{{ .Values.kafka.host }}</property>
</to>
</eventPublisher>
{{- if .Values.kafka.enabled}}
apiVersion: v1
kind: ConfigMap
metadata:
name: kafka-notice-conf
namespace : {{ .Release.Namespace }}
data:
kafka_notice.xml: {{ tpl (.Files.Get "confs/kafka_notice.toml") . | quote }}
{{- end }}
{{- if .Values.kafka.enabled}}
volumeMounts:
- name: kafka-notice-conf
mountPath: /home/wso2carbon/wso2am-4.5.0/repository/deployment/server/eventpublishers/kafka_notice.xml
subPath: kafka_notice.xml
{{- end }}
volumes:
- name: kafka-notice-conf
configMap:
name: kafka-notice-conf
kafka:
enabled: true
topic: apim-topic
host: 192.168.1.17:9092
经过上面的调整,你的helm-chart已经支持了kafka的event/publisher的配置了,下次重启apim,你的kafka-event/publisher就不会丢失了
作者:仓储大叔,张占岭,
荣誉:微软MVP
QQ:853066980
支付宝扫一扫,为大叔打赏!
