找回密码
 立即注册
首页 资源区 代码 wso2~自定义event-publisher

wso2~自定义event-publisher

饮邺谲 3 天前
自定义event/publishers的步骤

介绍


  • event/publishers功能位于carbon平台的event菜单,选择publishers菜单项即可打开发布者配置列表,你可以添加自定义的发布者,它们接收apim的相关事件
  • 核心组件: org.wso2.carbon.event.output.adaptor.kafka
  • 功能: 将APIM的事件数据发送到Kafka中
  • 选择的通知输入流: org.wso2.apimgt.notification.stream
  • 输出的事件适配类型: kafka
  • 消息格式: json
  • 参考:https://apim.docs.wso2.com/en/4.3.0/use-cases/streaming-tutorials/working-with-kafka
1.png

组件的依赖包

在carbon中的event/publishers中,添加一个kafka的发布者,然后配置相关kafka配置即可,它依赖下面一些jar包,需要将它们谢谢到/lib目录


  • jopt-simple-3.2.jar
  • kafka_2.10-0.8.1.jar
  • kafka-clients-0.8.2.1.jar
  • log4j-1.2.17.jar
  • metrics-annotation-2.2.0.jar
  • metrics-core-2.2.0.jar
  • org.osgi.core-6.0.0.jar
  • osgi.cmpn-6.0.0.jar
  • pax-logging-api-1.11.10.jar
  • scala-library-2.10.5.jar
  • snappy-java-1.1.2.1.jar
  • zkclient-0.11.jar
  • zookeeper-3.3.4.jar
helm对kafka-event-stream的支持

carbon/event下面的publishers以xml文件的形式被存储到文件目录/home/wso2carbon/wso2am-4.5.0/repository/deployment/server/eventpublishers下面,当你自己在carbon平台添加自定义的publisher后,由于这个目录没有挂载到磁盘,所以重启apim之后,自定义的publisher就丢失了;知道为什么会丢失,我们就可以对helm-charts进行优化了。

  • 添加toml原内容文件(all-in-one/confs/kafka_notice.toml)
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <eventPublisher name="kafka_notice" processing="enable"
  3.                 statistics="disable" trace="disable" xmlns="http://wso2.org/carbon/eventpublisher">
  4.     <from streamName="org.wso2.apimgt.notification.stream" version="1.0.0"/>
  5.     <mapping customMapping="disable" type="json"/>
  6.     <to eventAdapterType="kafka">
  7.         <property name="topic">{{ .Values.kafka.topic }}</property>
  8.         <property name="meta.broker.list">{{ .Values.kafka.host }}</property>
  9.     </to>
  10. </eventPublisher>
复制代码

  • 添加configmap(all-in-one/templates/am/wso2am-kafka-conf.yaml)
  1. {{- if .Values.kafka.enabled}}
  2. apiVersion: v1
  3. kind: ConfigMap
  4. metadata:
  5.   name: kafka-notice-conf
  6.   namespace : {{ .Release.Namespace }}
  7. data:
  8.   kafka_notice.xml: {{ tpl (.Files.Get "confs/kafka_notice.toml") . | quote }}
  9. {{- end }}
复制代码

  • 修改deployment(all-in-one/templates/am/wso2am-deployment.yaml)
  1. {{- if .Values.kafka.enabled}}
  2.       volumeMounts:
  3.         - name: kafka-notice-conf
  4.           mountPath: /home/wso2carbon/wso2am-4.5.0/repository/deployment/server/eventpublishers/kafka_notice.xml
  5.           subPath: kafka_notice.xml
  6. {{- end }}
  7.     volumes:
  8.       - name: kafka-notice-conf
  9.         configMap:
  10.           name: kafka-notice-conf
复制代码

  • 在values.yaml中添加kafka相关配置
  1. kafka:
  2.   enabled: true
  3.   topic: apim-topic
  4.   host: 192.168.1.17:9092
复制代码
经过上面的调整,你的helm-chart已经支持了kafka的event/publisher的配置了,下次重启apim,你的kafka-event/publisher就不会丢失了

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
您需要登录后才可以回帖 登录 | 立即注册