第一层目录:
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