转自钉钉群21789141:求助:sink to mysql应该怎么写? 继承了RichSinkFunction ,数据库连接信息放在open,还是invoke
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里面重新创建也是失败
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。