Flink CDC streaming java代码实战

1,关于Flink cdc的使用说明

  1)导入依赖

<dependency>
  <groupId>com.alibaba.ververica</groupId>
  <artifactId>flink-connector-mysql-cdc</artifactId>
  <version>1.1.0</version>
</dependency>

  sql案例 :

 

  2)需要理解注意的地方

    

这个锁可以去掉的,如果不去掉,也是很轻量级的,并不是snapshot完后才释放,而是拿到当前的binlog位点后就释放掉了。
如果表结构 不会变更的话可以完全禁用掉这个锁的。在sql里加上 'debezium.snapshot.locking.mode' = 'none' 就可以了

 问题:使用cdc的时候会影响mysql的性能跟正常使用吗?

      不会,这个锁应该很快就能释放,没什么性能瓶颈,但是得保证你接binlog的用户开了reload权限

  请百度 ‘’mysql的reload权限‘

 

2,官网的案例代码

package cdc;

/**
 * @program: flink-neiwang-dev
 * @description: 通过cdc代码读取mysql的数据
 * @author: Mr.Wang
 * @create: 2020-10-21 15:29
 **/

import com.alibaba.fastjson.JSONObject;
import com.alibaba.ververica.cdc.connectors.mysql.MySQLSource;
import org.apache.flink.streaming.api.datastream.DataStreamSource;
import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
import org.apache.flink.streaming.api.functions.source.SourceFunction;


public class MySqlBinlogSourceExample {
    public static void main(String[] args) {
        StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();
        env.setParallelism(1);
            SourceFunction<JSONObject> sourceFunction = MySQLSource.<JSONObject>builder()
                    .hostname("192.168.x.xx")
                    .port(3306)
                    .databaseList("cdc_test") // monitor all tables under inventory database

                    .username("root")
                    .password("xxxxxx")
                    .deserializer(new CdcDwdDeserializationSchema()) // converts SourceRecord to String
                    .build();


        DataStreamSource<JSONObject> stringDataStreamSource = env.addSource(sourceFunction);

        stringDataStreamSource.print("===>");


        try {
            env.execute("测试mysql-cdc");
        } catch (Exception e) {
            e.printStackTrace
  • 17
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值