Kafka消費者沒有收到通知的分析


  今天遇到兩位三方人員跟我反饋,某微服務的異步接口功能不正常了,由於該異步接口采用Kafka異步消息的方案,對方說沒有收到Kafka給消費者的通知,根據此問題,聯系了相關人員進行了分析:

  (一)明確環境是否一致

  1、生產者和消費者鏈接Kafka的地址是否一致,初步發現A方消費者鏈接Kafka的地址不正確,沒有與生產者鏈接Kafka的地址保持一致。

  2、topic和key是否都一致,初步可以確定A方消費的topic和key都是跟生產者的topic和key是一一對應的。

  (二)生產者和Kafka之間的交互

  通過生產者的日志分析,已成功將消息發生給Kafka了,並且在Kafka端也明確是接收到了次消息,所以說生產者和Kafka之間的交互是沒有問題的,流程正常。

  (三)Kafka和消費者之間的交互

  1、A方消費者矯正鏈接Kafka的地址后進行測試,表明是可以正常接收到,到此A方消費者的問題得到了處理,就是地址不正確造成的;

  2、B方消費者暫時還沒有接收到通知,經Kafka方的確認,B方消費者沒有在生產者提供的topic下進行訂閱,並且B方消費者在啟動時也沒有看到該topic的日志信息,因此Kafka方先讓B方消費者修改一下topic信息和key信息,在代碼中寫死;B方消費者修改后進行測試,表明是可以正常接收到消息了,並且在Kafka那里也看到該topic下有B方消費者的訂閱了,到此B方消費者的問題也到了處理,就是topic和key不正確造成的。

  3、后來又聽B方說是bean注入的問題(指定了@Qualifier()后就不能訂閱了),目前還不知道確定的原因。

 

  小結:在遇到這類問題時一定要檢查自身的代碼,配置信息是否正常,否則這樣的分析和定位都是在浪費大家的時間。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM