自定义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

组件的依赖包

在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进行优化了。

  1. 添加toml原内容文件(all-in-one/confs/kafka_notice.toml)
<?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>
  1. 添加configmap(all-in-one/templates/am/wso2am-kafka-conf.yaml)
{{- 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 }}
  1. 修改deployment(all-in-one/templates/am/wso2am-deployment.yaml)
{{- 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
  1. 在values.yaml中添加kafka相关配置
kafka:
enabled: true
topic: apim-topic
host: 192.168.1.17:9092

经过上面的调整,你的helm-chart已经支持了kafka的event/publisher的配置了,下次重启apim,你的kafka-event/publisher就不会丢失了

wso2~自定义event-publisher的更多相关文章

  1. Spring 4.2 annotation event Publisher/Listener

    http://spring.io/blog/2015/02/11/better-application-events-in-spring-framework-4-2 Better applicatio ...

  2. spring中自定义Event事件的使用和浅析

    在我目前接触的项目中,用到了许多spring相关的技术,框架层面的spring.spring mvc就不说了,细节上的功能也用了不少,如schedule定时任务.Filter过滤器. intercep ...

  3. Spring学习六:自定义Event事件

    Spring 中的自定义事件 编写和发布自己的自定义事件有许多步骤.按照在这一章给出的说明来编写,发布和处理自定义 Spring 事件. 步骤 描述 1 创建一个名称为 SpringExample 的 ...

  4. 【Azure 事件中心】使用Azure AD认证方式创建Event Hub Consume Client + 自定义Event Position

    问题描述 当使用SDK连接到Azure Event Hub时,最常规的方式为使用连接字符串.这种做法参考官网文档就可成功完成代码:https://docs.azure.cn/zh-cn/event-h ...

  5. 实现一个自定义event事件,包括on ,off,trigger,once

    on监听事件,off取消事件 ,trigger触发事件,once只执行一次 class Event { constructor() { this.handlers = {};//记录所有的事件以及处理 ...

  6. 自定义Spring event

    通过Spring自定义event 首先我们定义我们的event类 package com.hyenas.spring.custom.event; import org.springframework. ...

  7. C# 事件Event(个人整理)

    内容来源:MSN:https://docs.microsoft.com/zh-cn/dotnet/csharp/event-pattern 操作符详解(上)   https://www.youtube ...

  8. flex中Event类的使用

    当您创建自己的自定义 Event 类时,必须覆盖继承的 Event.clone() 方法,以复制自定义类的属性.如果您未设置在事件子类中添加的所有属性,则当侦听器处理重新分派的事件时,这些属性将不会有 ...

  9. EventBus VS Spring Event

    EventBus VS Spring Event 本地异步处理,采用事件机制 可以使 代码解耦,更易读.事件机制实现模式是 观察者模式(或发布订阅模式),主要分为三部分:发布者.监听者.事件. Gua ...

  10. 事件/委托机制(event/delegate)(Unity3D开发之十七)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/46539433 ...

随机推荐

  1. 【Python】ini解析ERROR:没有实例属性‘__getintem__’

    abaqus python 搭配ini 时,出现AttributeError: ConfigParser instance has no attribute 'getitem' 20230404 ed ...

  2. C# 中的“相等判断”

    C# 中的"相等判断" C# 中判断相等的方式很多,例如: 双等号 ==​ 实例的 Equals()​ 方法 ​Object.Equals()​ 静态方法 ​Object.Refe ...

  3. php nginx 504 Gateway Timeout 网关超时错误

    对于 Nginx + FastCGI上的504网关超时错误(php-fpm),我们可以修改PHP和nginx的执行超时时间. 配置php 修改 php.ini(CentOS路径是/etc/php.in ...

  4. mac强制关闭程序

    使用快捷键:Command+Option+Esc 来打开"强制退出应用程序"的窗口,然后选中你需要退出的程序,再点右下方的"强制退出"即可.

  5. 【前端开发】记一次Echart 内存泄露问题的排查

    最近发现一个web项目总是莫名其妙的内存增长,然后进行定位后来发现问题大概率出在Eharts上. 于是乎就开始搜索关于echarts内存增长的一些例子,但是都没有结果. 其中翻博客时发现甚至有人换成一 ...

  6. [源码系列:手写spring] IOC第十四节:容器事件和事件监听器

    代码分支 https://github.com/yihuiaa/little-spring/tree/event-and-event-listenerhttps://github.com/yihuia ...

  7. ro在xe10.3上的安装

    在学习研究RO. RO9.2.101.1295在xe10.3上安装遇到新问题.记录处理的办法: 没有采用执行exe安装的方法.而是采用复制源代码后编译安装. 1.把生成的bpl.dcp安装到默认目录, ...

  8. 大模型 Token 究竟是啥:图解大模型Token

    前几天,一个朋友问我:"大模型中的 Token 究竟是什么?" 这确实是一个很有代表性的问题.许多人听说过 Token 这个概念,但未必真正理解它的作用和意义.思考之后,我决定写篇 ...

  9. java基础之函数式接口

    一.函数式接口在Java中是指:有且仅有一个抽象方法的接口,所以函数式接口就是可以适用于Lambda使用的接口 二.自定义函数式接口 格式: @FunctionalInterface //该注解可省, ...

  10. 使用open-feign进行远程服务调用

    想要远程调用别的服务 1).引入open-feign包 2).编写一个接口,告诉SpringCloud这个接口是调用哪个远程的服务 a.声明接口的每一个方法都是调用哪个远程服务的那个请求 3).开启远 ...