开发者社区> 问答> 正文

同一个canalConnector不能开启多个线程,分别subscribe不同的表吗

@Override public void run() {//类似这种线程有三个,只是订阅的表不一样,但是共用同一个canalConnector while (true){ try { int batchSize = 1000; canalConnector.subscribe("shop.shop" ); Message message = canalConnector.getWithoutAck(batchSize); ..... ..... ..... }

我开了三个线程,三个线程都是共用同一个canalConnector,然后每个线程subscribe分别订阅一张表的信息(比如线程A订阅shop表,线程B订阅user表)。但是这时候无论修改任何mysql信息,canal都无法订阅到消息。只有关闭掉其它线程,只保留一个线程时才会订阅到消息(保留任何一个都可以)。最终暂时选择开启一个线程,订阅所有表的信息,然后根据不同的表信息做不同的业务处理。 请问同一个canalConnector不能开启多个线程,分别subscribe不同的表吗?谢谢

原提问者GitHub用户hei-my

展开
收起
云上静思 2023-05-04 13:06:22 80 0
1 条回答
写回答
取消 提交回答
  • 需要一次性订阅几张表,不能分开多个线程订阅

    原回答者GitHub用户agapple

    2023-05-05 10:41:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载