我們在兩個節點上有Spring引導應用程序。現在我們希望保留一些數據到緩存中,而不是每5秒調用一次外部服務。問題是如何在兩個節點之間共享緩存?可能嗎 ?或者也許爲每個節點創建兩個獨立的緩存?哪種方法更好?我認爲維護共享緩存非常困難。感謝您提供任何提示春季4,共享緩存beetwen節點
回答
我將選擇您的術語「共享緩存」,它表示集羣或分佈式緩存產品,例如Infinispan,hazelcast或Apache Ignite。
您可能希望由於以下原因共享緩存:
一致性:如果您的應用程序更新緩存中的一個節點,一個共享的緩存會在意更新的傳播,並確保每一個節點發現更新完成後的新值。這是共享緩存可以給你的東西,但不一定是任何「共享緩存」產品。
次10問題:當您添加更多節點時,共享緩存將限制對外部服務的請求,否則每個節點可能會請求相同的值。
大數據:這適用於分佈式緩存:您可以緩存更多數據,然後在一個系統中存在空間。
但是,您以更多的配置和部署複雜性爲代價獲得了這些好處。此外,共享緩存的訪問延遲通常遠高於本地緩存。爲了進行比較,請看這些benchmarks。
總結:現在有兩個節點。如果您沒有協調更新或失效的問題,請保留簡單的本地緩存。如果你想成爲未來的證明,並有空閒時間來修補共享緩存,去吧:)
由於你已經使用春季啓動,我會使用緩存抽象(註釋)在後臺使用Redis的背景。 Redis可以很容易地共享和集羣,並且性能足夠好。請參閱official documentation
好吧,但是我需要另一臺機器來安裝redis嗎? – user3528733
那麼如果您想要容錯,則需要在多臺機器上安裝Redis並設置HA羣集(http://redis.io/topics/cluster-tutorial)。如果您可以在運行應用程序的同一臺計算機上執行此操作,則取決於安全性要求以及是否有足夠的容量。 –
- 1. 春季HTTP緩存管理
- 2. 春季啓動可緩存 -
- 3. 在春季4
- 4. ASP.Net緩存共享
- 5. Facebook共享緩存
- 6. 春季安全春季啓動4.x
- 7. 恢復共享點配置緩存
- 8. 什麼是共享點中的緩存
- 9. 共享緩存共享模板?
- 10. 春季緩存/春季庫,驅逐多個鍵
- 11. 更新緩存在春季/春季啓動
- 12. 排定春季緩存驅逐?
- 13. 緩存與春季數據休息
- 14. 春季注入番石榴緩存
- 15. 如何在春季緩存列表?
- 16. 春季開機自動刷新緩存
- 17. 春季開機緩存熱身
- 18. NoClassDefFoundError與春季緩存和aspectj
- 19. 百里香緩存與春季啓動
- 20. 春季啓動自定義緩存TTL
- 21. 春季緩存不與Memcached合作
- 22. PlayFramework共享緩存問題
- 23. 共享緩存超時
- 24. Cypher:排除共享節點?
- 25. 在內存中緩存數據共享
- 26. C#共享內存高速緩存
- 27. 如何共享春季XD跨模塊豆
- 28. 使用boost庫釋放共享內存中的節點內存
- 29. Spring緩存與春季數據休息庫緩存異常保存結果
- 30. 緩存共享類中的數據
您可以使用配置的Ehcache進行羣集。 –
我需要另一臺ehcache服務器嗎? – user3528733
不,它只是一個可以嵌入到應用程序中的庫。甚至沒有一個單獨的過程。 –