Sink
简单说就是将Flink流计算的结果输出到某个地方(Mysql\Redis\Kafka\Cassandra etc)。
从上图可以看到自带的 Sink 都是继承了 RichSinkFunction 抽象类,实现其中的方法。那么我们要是自己定义 Sink 的话其实也是要按照这个方法来做。
这里我说下自己目前做告警这块就是把计算结果的Sink发到kafka和redis中。发送到kafka前面已经说过,这里主要展示下自定义redisSink的写法:
1.将结果的数据流addSink(new 自定义Sink)
2.将结果的数据流存储至Redis
首先自定义Sink继承RichSinkFunction,实现其open、close、invoke方法。
从以上名称就能理解:
- open:打开连接
- close:关闭连接
- invoke:要存储的业务数据
以上,一个简单的自定义Sink小例子。