wso2~自定义event-publisher
自定义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进行优化了。
- 添加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>
- 添加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 }}
- 修改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
- 在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的更多相关文章
- Spring 4.2 annotation event Publisher/Listener
http://spring.io/blog/2015/02/11/better-application-events-in-spring-framework-4-2 Better applicatio ...
- spring中自定义Event事件的使用和浅析
在我目前接触的项目中,用到了许多spring相关的技术,框架层面的spring.spring mvc就不说了,细节上的功能也用了不少,如schedule定时任务.Filter过滤器. intercep ...
- Spring学习六:自定义Event事件
Spring 中的自定义事件 编写和发布自己的自定义事件有许多步骤.按照在这一章给出的说明来编写,发布和处理自定义 Spring 事件. 步骤 描述 1 创建一个名称为 SpringExample 的 ...
- 【Azure 事件中心】使用Azure AD认证方式创建Event Hub Consume Client + 自定义Event Position
问题描述 当使用SDK连接到Azure Event Hub时,最常规的方式为使用连接字符串.这种做法参考官网文档就可成功完成代码:https://docs.azure.cn/zh-cn/event-h ...
- 实现一个自定义event事件,包括on ,off,trigger,once
on监听事件,off取消事件 ,trigger触发事件,once只执行一次 class Event { constructor() { this.handlers = {};//记录所有的事件以及处理 ...
- 自定义Spring event
通过Spring自定义event 首先我们定义我们的event类 package com.hyenas.spring.custom.event; import org.springframework. ...
- C# 事件Event(个人整理)
内容来源:MSN:https://docs.microsoft.com/zh-cn/dotnet/csharp/event-pattern 操作符详解(上) https://www.youtube ...
- flex中Event类的使用
当您创建自己的自定义 Event 类时,必须覆盖继承的 Event.clone() 方法,以复制自定义类的属性.如果您未设置在事件子类中添加的所有属性,则当侦听器处理重新分派的事件时,这些属性将不会有 ...
- EventBus VS Spring Event
EventBus VS Spring Event 本地异步处理,采用事件机制 可以使 代码解耦,更易读.事件机制实现模式是 观察者模式(或发布订阅模式),主要分为三部分:发布者.监听者.事件. Gua ...
- 事件/委托机制(event/delegate)(Unity3D开发之十七)
猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/46539433 ...
随机推荐
- 【Unit2】电梯调度(多线程设计)-作业总结
第一次作业 1.1 题目概述 5座楼,每座楼单电梯,类型相同,请求不跨楼层 1.2 个人处理思路 红色加粗为线程类,绿色块为临界区(共享对象) /...鄙人还在加班加点的赶制中.qwq./ 1.3 B ...
- jQuery ajax 文件上传 Request Headers 缺少 boundary
原文地址: https://blog.jijian.link/2020-07-28/jquery-ajax-upload-file/ 一般上传方式 const file = document.getE ...
- Go语言之sync包 WaitGroup的使用
WaitGroup 是什么以及它能为我们解决什么问题? WaitGroup在go语言中,用于线程同步,单从字面意思理解,wait等待的意思,group组.团队的意思,WaitGroup就是指等待一组, ...
- Docker Swarm 进阶:集群容错
- Pydantic递归模型深度校验36计:从无限嵌套到亿级数据的优化法则
title: Pydantic递归模型深度校验36计:从无限嵌套到亿级数据的优化法则 date: 2025/3/26 updated: 2025/3/26 author: cmdragon excer ...
- DP——从入门到放弃 [Did Not Finish]
Part 00 dp 什么时候用? 首先,如果这题数据范围一眼 BFS/DFS/暴力/随机化 可以过,那么还写 dp 干什么 但是,但你决定这题要贪心时,我建议咱还是要看一下它对不对 整一个石子合并这 ...
- 【Java】Math类的基本操作
Math类 Math 类是数学操作类,提供了一系列的数学操作方法,包括求绝对值.三角函数等,在 Math 类中提供的一切方法都是静态方法(类方法),所以直接由类名称调用即可. Math类的基本操作: ...
- 大量数据topk-分桶+堆+多路并归解决方案
利用分桶.堆与多路归并解决 TopK 问题:结果处理阶段解析 在处理大规模数据时,TopK 问题是一个常见且具有挑战性的任务,即从海量数据中找出最大(或最小)的 K 个元素.为了高效地解决这个问题,我 ...
- Mapper.xml配置的几种方法:
一. 7.4.1. <mapper resource=" " /> 使用相对于类路径的资源(现在的使用方式,UserMapper接口与UserMapper.xml的包路 ...
- 记一次 .NET某固高运动卡测试 卡慢分析
一:背景 1. 讲故事 年前有位朋友找到我,说他们的程序会偶发性卡慢 10s 钟,在某些组合下会正常,某些组合下就会出现问题,解释不了其中的原因,让我帮忙看下怎么回事?截图如下: private vo ...