我們昨天講了什麼是JetStream,以及它的特性,還有它克服CoreNATS的一些問題。同時也說明JetStream的stream。
今天我們接著講JetStream的另一個重要的功能 - Consumer。
好~讓我們開始吧!
在NATS JetStream 中,Consumer是接收和處理訊息的重要功能。
有別於pub-sub的subscriber被動接收來自NATS的訊息;Consumer提供push/pull兩種接收的方式提高開發團隊的效率。
不論是用哪一種方式接收訊息,當consumer處理完消息後,必須回覆Ack訊息給stream,告知它這筆訊息已經處理完成,可以從stream中刪除。
這時候會有個疑問,如果consumer遲遲不回的話該怎麼處理?
在stream中有inspire time的設定,我們先說明什麼是inspire time。
Inspire time:
意思就是開發團隊可以在stream設定inspire time,若超過設定的inspire time,stream卻沒收到consumer發來的Ack,steam會認為consumer沒有接到訊息,會重新發一次。
NATS JetStream的consumer提供了非常靈活、高效的訊息處理方法,能夠支援各種分佈式系統的需求。通過訊息的持久化、push/pull consumer,JetStream能夠讓訊息的處理更加簡單和有效率。
好了~今天就到這邊!!