两种方式实现Flink异步IO查询Mysql

Flink异步IO查询mysql

Posted by Sun.Zhu on May 6, 2020

如官网所描述的Flink支持两种方式实现异步IO查询外部系统

https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/stream/operators/asyncio.html

  • 1.数据库(或key/value存储)提供支持异步请求的client。

参考代码: https://github.com/zhuxiaoshang/flink-be-god/blob/master/flink-operator/src/main/java/operator/asyncio/ASyncIOClientFunction.java

  • 2.没有异步请求客户端的话也可以将同步客户端丢到线程池中执行作为异步客户端。

参考代码: https://github.com/zhuxiaoshang/flink-be-god/blob/master/flink-operator/src/main/java/operator/asyncio/ASyncIOFunction.java

使用io.vertx作为mysql异步调用client

需要添加如下依赖

<dependency>
   <groupId>io.vertx</groupId>
   <artifactId>vertx-jdbc-client</artifactId>
   <version>3.5.4</version>
</dependency>
<dependency>
   <groupId>io.vertx</groupId>
   <artifactId>vertx-core</artifactId>
   <version>3.5.4</version>
</dependency>

FLink执行Main函数: https://github.com/zhuxiaoshang/flink-be-god/blob/master/flink-operator/src/main/java/operator/asyncio/ASyncIODemo.java

本项目包含常用的flink使用场景,如果对你有帮助,帮忙点个★哦

https://github.com/zhuxiaoshang/flink-be-god