生產環境ehcache遷移到集中式redis叢集

來源:互聯網
上載者:User

標籤:

  原先項目中使用的ehcache分布式緩衝,缺點是浪費記憶體,並且ehcache使用的是jvm進程的記憶體,因此記憶體使用量很受限制。

還有就是業務中有時希望更新一個業務實體來使對應的緩衝失效的情境,這種情況下如果對應業務實體緩衝有多台機子那更新實體後更新緩衝只能是其中一台,無法全部更新。

  基於以上幾點,項目希望切換成集中式緩衝。

 集中式快取服務端架構是:網易LBS+Twemproxy+redis叢集。

 快取用戶端使用的是spring Data Redis。

 由於Twemproxy代理本身不支援multi操作,因此項目中覆寫了RedisCache的put方法。

我們這邊項目用dubbo切分治理服務後,希望每個服務之間定義的緩衝也是獨立的。因此我們這邊通過覆寫RedisCacheManager的getCache方法,引入group組的概念。

每個具體服務模組都有一個組名,如商品模組組名:ItemCenter。

這樣保證了每個服務間緩衝的獨立性,不同模組可以使用相同的緩衝名稱。


監控部分,一個是監控redis這層和業務無關的,還有就是和具體業務方有關的資料監控。

我們這邊開發了一個業務層的監控,用於列出所有的cache塊,列出每個業務cache塊名稱及相應元素對象個數。

並提供了一個清除cache塊的按鈕,當程式有bug時能夠及時清除恢複。


spring context 4.0.8.RELEASE版本的spring data redis有個bug,當redis緩衝掛掉後,正常業務訪問一個緩衝方法,這時由於RedisCache在做訪問操作時拋出了異常,但未捕獲,因此會導致整個業務訪問也跟著掛掉。

最新版4.1.3.RELEASE已修複。



 

生產環境ehcache遷移到集中式redis叢集

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.