天天看點

Kafka生産者消息釋出模式源碼解析發送消息的流程1 同步發送模式源碼2 異步發送模式源碼流程3 總結

發送消息的流程

Producer根據指定的partition方法(round-robin、hash等),将消息釋出到指定topic的partition裡面

kafka叢集接收到Producer發過來的消息後,将其持久化到硬碟,并保留消息指定時長(可配置),而不關注消息是否被消費

Consumer從kafka叢集pull資料,并控制擷取消息的offset

1 同步發送模式源碼

Kafka生産者消息釋出模式源碼解析發送消息的流程1 同步發送模式源碼2 異步發送模式源碼流程3 總結

2 異步發送模式源碼流程

Kafka生産者消息釋出模式源碼解析發送消息的流程1 同步發送模式源碼2 異步發送模式源碼流程3 總結
Kafka生産者消息釋出模式源碼解析發送消息的流程1 同步發送模式源碼2 異步發送模式源碼流程3 總結

3 總結

3.1 同步發送模式特點

  • 同步的向伺服器發送RPC請求進行生産
  • 發送錯誤可以重試
  • 可以向用戶端發送ack

3.2 異步發送模式特點

最終也是通過向伺服器發送RPC請求完成的(和同步發送模式一樣)

異步發送模式先将一定量消息放入隊列中,待達到一-定數量後再一起發送;

異步發送模式不支援發送ack,但是Client可以調用回調函數擷取發送結果

是以,性能比較高的場景使用異步發送,準确性要求高的場景使用同步發送。