發送消息的流程
Producer根據指定的partition方法(round-robin、hash等),将消息釋出到指定topic的partition裡面
kafka叢集接收到Producer發過來的消息後,将其持久化到硬碟,并保留消息指定時長(可配置),而不關注消息是否被消費
Consumer從kafka叢集pull資料,并控制擷取消息的offset
1 同步發送模式源碼
2 異步發送模式源碼流程
3 總結
3.1 同步發送模式特點
- 同步的向伺服器發送RPC請求進行生産
- 發送錯誤可以重試
- 可以向用戶端發送ack
3.2 異步發送模式特點
最終也是通過向伺服器發送RPC請求完成的(和同步發送模式一樣)
異步發送模式先将一定量消息放入隊列中,待達到一-定數量後再一起發送;
異步發送模式不支援發送ack,但是Client可以調用回調函數擷取發送結果
是以,性能比較高的場景使用異步發送,準确性要求高的場景使用同步發送。