flink kafka sink (scala)

将对象数据通过Gson 转为jsonString,在将数据写到kafka中,这个可以根据需要修改,比如按照\t分开也行,可以节省字段名称的空间。

这里还有一个问题,就是每来一条数据都需要new Gson 对象,有没有办法减少创建呢

我们知道job 和task之间是不能够传输序列化的对象的。

那么如果需要减少Gson的创建,可以自定义map函数,继承并实现RichMapFunction中的方法,其中open就可以只创建一次Gson。

data.map(new Gson().toJson(_))

.addSink(new FlinkKafkaProducer[String]("topicName", new SimpleStringSchema(), props, Optional.ofNullable[FlinkKafkaPartitioner[String]](null)))

.uid("write-to-kafka")

.name("write-to-kafka")

自定义map:

private class DemoMap extends RichMapFunction[Data, String] {

var gson:Gson=_

override def open(parameters: Configuration): Unit = {

gson=new Gson()

}

override def map(value: Data): String = {

gson.toJson(value)

}

override def close(): Unit = {

}

}

相关推荐
Doker 多克4 小时前
Flink CDC —部署模式
大数据·flink
酷爱码5 小时前
Spring Boot 整合 Apache Flink 的详细过程
spring boot·flink·apache
问道飞鱼5 小时前
Flink 高可用集群部署指南
flink·部署·批处理·流式批处理
库森学长8 小时前
Kafka为什么这么快?
后端·面试·kafka
渣渣盟21 小时前
基于Scala实现Flink的三种基本时间窗口操作
开发语言·flink·scala
zhojiew21 小时前
关于akka官方quickstart示例程序(scala)的记录
后端·scala
网安INF21 小时前
CVE-2020-17519源码分析与漏洞复现(Flink 任意文件读取)
java·web安全·网络安全·flink·漏洞
一叶知秋哈21 小时前
Java应用Flink CDC监听MySQL数据变动内容输出到控制台
java·mysql·flink
Wo3Shi4七1 天前
Kafka综合运用:怎么在实践中保证Kafka_高性能?
后端·kafka·消息队列
代码匠心1 天前
从零开始学Flink:揭开实时计算的神秘面纱
java·大数据·后端·flink