bug重現
kafka消費者只能消費到部分canal傳到kafka的資料
[2021-12-21 21:39:23,851] WARN [Consumer clientId=consumer-console-consumer-66962-1, groupId=console-consumer-66962] Connection to node 4 (hadoop104/192.168.100.104:9092) could not be established. Broker may not be available. (org.apache.kafka.clients.NetworkClient)
原因
按主鍵磁區的前提下,canal設定的磁區數大于kafka主題磁區數量
canal設定中磁區數為4,canal在kafka的主題數量是1
導致canal按主鍵送往相應的磁區,只有部分資料送往了0號磁區,因為kafka中不存在其他磁區,所以接受不到canal的資料送往其他磁區的資料
解決
1、修改canal的/conf/example/instance.properties檔案
確定canal.mq.partitionsNum=4
2、修改kafka的組態檔/config/server.properties檔案
修改num.partitions=4 (新建topic的初始磁區數盡量大于等于canal的磁區)
3、因為修改了kafka的新建topic磁區數量,要洗掉原來的主題,
關閉canal-》洗掉對應的主題-》重啟kafka-》重啟canal
驗證
啟動kafka消費者,改變canal所監控的資料庫的資料
可以看到所有的資料
遺留問題
canal送往其他磁區的訊息,既然kafka中沒有對應的磁區,為什么沒有報錯呢?
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/389102.html
標籤:其他
