Closed boboChina closed 7 years ago
What's your concern?
哥们,我担心的是canal的进程宕机,zk链接相关异常、写入阻塞(这个没用队列),写入如果出错如何回环补救,还有如何第一次初始化。等等等等
zk连接异常会直接导致ack不成功,在程序这边加上ack fail 的错误处理就行,数据不会丢。
写入阻塞问题需要hbase那边保证,一旦提交写入成功,客户端没法感知,不过只要写入了hbase,hbase那边都会处理,也不会丢数据。
初始化我是用sqoop直接导入元数据的,通过hbase rowkey保证数据一致性。
出现错误可以写入log中,log日志监控需要有其他模块来完成。
帅哥,刚才我拜读了下你的程序。有几点思考望讨论下: 1、cannal那边已经是可以提供ha机制的,但是如果这个程序的ha咧 2、如果binlog输出非常快,getWithoutAck这个地方会不会有问题 3、这个程序可做部署多个作为多客户端么? 4、直接把这个改造到otter里面是否可行? ps:"通过hbase rowkey保证数据一致性 ," 这个麻烦细化一下,刚研究, 还不是很熟悉
hbase 在插入数据的时候是根据rowkey来定位的,如果有了,会直接覆盖。所以先起canal server,之后再起sqoop,再起canal client,有交叉处理的部分数据会以canal client端为准。数据不会有问题。
thx,我尝试一下先把event扔到kafka,再由多个消费端写到hbase。谢谢帅哥
RT