当前位置: 首页 > 工具软件 > Kuiper > 使用案例 >

Kuiper源码分析

能文华
2023-12-01

第一层目录:

common
deploy
docs
etc
example
fvt_scrpts
plugins
xsql
xstream

其中,比较重要的应该是:common,xstream,xsql
先研究一下xstream

api
cli
collectors
contexts
demo
extensions
myfunction
mywav
nodes
operators
server
sinks
test
funccs.go
streams.go
util.go
util_test.go

api

stream.go

import context

接口 SourceTuple{Message() map[string]interface{} Meta() map[string]interface{}}
结构 DefaultSourceTuple,构造器NewDefaultSourceTuple
结构实现接口的两个方法

Logger接口,包括error,warn等方法

Closable接口, 包括Close(ctx StreamContext) error方法
Source接口,包括open,configure, closable
Sink接口,包括open,configure,collect,closable
这三个接口的方法都涉及到StreamContext类型的参数

Emitter接口, AddOutput
Collector接口, GetInput
TopNode接口, GetName()

Rule结构:id,sql,action,Option
对应于rule

StreamContext接口,context相关的很大方法
Operator接口, Emitter,Collector接口, Exec,GetName,GetMetrics方法
Function 接口, Validate, exec , IsAggregate方法

Collectors

func.go

import xstream/api

type CollectorFunc func(api.StreamContext, interface{}) error
FuncCollector结构, 包括f CollectorFunc
包括构造器
包括方法:Open,Configure, Collect Close
 类似资料: