开发者社区> 问答> 正文

求助:sink to mysql应该怎么写? 继承了RichSinkFunction ,数据库连接信息放在open,还是invoke

转自钉钉群21789141:求助:sink to mysql应该怎么写? 继承了RichSinkFunction ,数据库连接信息放在open,还是invoke

展开
收起
赵慧@ApacheFlink中文社区 2018-10-18 15:37:52 4428 0
1 条回答
写回答
取消 提交回答
  • JasonLee:invoke 把
    问:本来想放在open,但是发现 stmt会自动关闭,conn也担心断掉之类的,但是放在invoke里面又担心效率问题
    答:invoke里加一层对连接状态的判断,不用每次invoke都连接

    答:放open里面

    问: conn 和stmt都放open里面吗? 那stmt这种会自动断开的 怎么办 ?在invoke里面再判断处理吗?
    我也考虑过这么写 但是每次preparestatement都是从新创建 会不会存在效率的问题 而且我担心加入因为需要数据库重启 是不是conn连接就断了呢 ???

    答: 数据库重启期间 抛出了异常:Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure但是看输出,应该恢复了。

    问:数据存在丢失吗?

    答: 我觉得应该会有,考虑到watermark机制

    问: 那看来还是需要在invoke函数里面

    答:这个没用啊,数据库断开之间,你在Invoke里面重新创建也是失败

    2019-07-17 23:09:17
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
One Box: 解读事务与分析一体化数据库 HybridDB for MySQL 立即下载
One Box:解读事务与分析一体化数据库HybridDB for MySQL 立即下载
如何支撑HTAP场景-HybridDB for MySQL系统架构和技术演进 立即下载

相关镜像