2015-11-12 161 views
0

我有一個情況,我有一個來自另一個服務器的帖子休息請求查詢客戶信息,包括UID和其他信息,如客戶ID.After與客戶信息的響應後,我得到第二個請求與相同的UID向同一客戶請求付款。我想緩存這個UID和第一個請求中的其他信息,以便能夠識別哪個第二個請求屬於哪個客戶。緩存休息請求

任何人都可以幫我使用球衣來實現這種情況嗎?

+0

請嘗試自己嘗試解決問題,然後將問題發佈到您有任何具體問題的問題上。我們不提供完整的解決方案或代碼塊。 – EkcenierK

+0

你不應該在REST中這樣做。請求應該有正確處理它的所有信息。 –

+0

我知道了,但我必須在第一次請求中計算此客戶的最低付款金額,然後在處理第二次付款請求之前將其發回,而且通過網絡發送兩次相同的信息會產生開銷。此外,除非第二個請求成功,否則不想保存來自第一個請求的信息。 – yehia

回答

0

正如佩德羅所述,每個請求應包含處理請求所需的所有數據。

如果兩個請求都包含UID並且UID可以使用一個密鑰,那麼基於UID緩存客戶信息(性能考慮可能?)是可以接受的。但這是一個純粹的緩存問題,而不是澤西島問題。

例如,如果客戶信息是使用JPA獲取的,則二級緩存可以緩存該信息。

如果通過其他方式獲取信息,請考慮使用Guava Cache。 https://github.com/google/guava/wiki/CachesExplained

您可以手動添加到緩存(使用緩存「asMap」)或使用緩存加載器。它將加載並返回緩存中不可用的數據,或者在高速緩存中可用時將其從緩存中返回。

番石榴緩存中包含所有類型的好東西:大小的逐出,基於時間的驅逐等

番石榴緩存使用方便,輕巧和生產準備。您可以輕鬆地將Cache實例封裝到單例中,並通過請求共享。

+0

謝謝@filipd,我使用的是Spring Data JPA,我不想多次訪問數據庫,同時也不想保存來自第一個請求的信息,除非獲得併成功響應第二個請求。所以,我想暫時保存從第一個請求旁邊的數據庫獲取信息。 – yehia