* ack=1,Producer只要收到一個分區副本成功寫入的通知就認為推送消息成功了。這個副本必須是leader副本, 只有leader副本成功寫入了,Producer才會認為消息發送成功。但是,果leader成功寫入后,還沒來得及把數據同步到Follower節點就掛了,這時候消息就丟失了。 ack的默認值就是1。這個默認值其實就是吞吐量與可靠性的一個折中方案。生產上我們可以根據實際情況進行調整,比如如果你要追求高吞吐量,那么就要放棄可靠性。
* ack=-1,Producer只有收到分區內所有副本的成功寫入的通知才認為推送消息成功了
* ack=0 簡單來說就是,Producer發送一次就不再發送了,不管是否發送成功