Spring Cloud GCP 從訂閱中提取消息

2024-01-09 17:36 更新

Google Cloud Pub / Sub支持從訂閱中同步提取消息。這與訂閱是不同的,在某種意義上說,訂閱是一個異步任務(wù),它以設(shè)置的時間間隔輪詢訂閱。

pullNext()方法允許從訂閱中提取一條消息并自動對其進(jìn)行確認(rèn)。pull()方法從訂閱中提取了許多消息,從而允許配置重試設(shè)置。pull()收到的任何消息都不會自動確認(rèn)。 相反,由于它們屬于AcknowledgeablePubsubMessage類型,因此您可以通過調(diào)用ack()方法來確認(rèn)它們,或者通過調(diào)用nack()方法來否定它們。pullAndAck()方法的作用與pull()方法相同,此外,它確認(rèn)所有接收到的消息。

pullAndConvert()方法的作用與pull()方法相同,此外,使用模板中配置的轉(zhuǎn)換器將Pub / Sub二進(jìn)制有效負(fù)載轉(zhuǎn)換為所需類型的對象。

要一次確認(rèn)從pull()pullAndConvert()收到的多條消息,可以使用PubSubTemplate.ack()方法。您也可以使用PubSubTemplate.nack()否定地確認(rèn)消息。

使用這些方法批量確認(rèn)消息比單獨確認(rèn)消息更有效,但是它們要求消息收集來自同一項目。

消息上的所有ack(),nack()modifyAckDeadline()方法以及PubSubSubscriberTemplate都是異步實現(xiàn)的,返回一個ListenableFuture<Void>以能夠處理異步執(zhí)行。

PubSubTemplate使用由其SubscriberFactory生成的特殊訂閱者來同步提取消息。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號