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

如官网所描述的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

你可能感兴趣的:(flink,asynchronous)