一次C端线上缓存问题的总结
生活随笔
收集整理的這篇文章主要介紹了
一次C端线上缓存问题的总结
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一次C端線上緩存問題的總結
做C端需求的第二周,有個小需求,需要將從中央配置中心的拿回來的數據做一個緩存,保證數據訪問快速。
由于項目中直接有ehcache,集成spring-boot,所以開發起來比較簡單,只是隨手加上了@Cacheable注解,并在需要清除緩存的時候加上了@CacheEvict。
當然,正常情況下沒有任何問題。
結果….
突然當配置中心掛了的時候,我們把null值緩存進去了,導致的是緩存生效的剩余時間里,服務都是不可用的。
也算是個線上事故了。
犯得錯誤有點不應該,以此文來記錄,并總結錯誤。
總結:
- 對使用的組件的所有功能應該有全面的認識再用
- 如果使用的是新注解,應該對注解的所有的參數有了解才用
- 多考慮代碼的邊界情況,異常情況
- http請求總會失敗
- 墨菲定律,壞事只要有可能,就一定會出現。
修正后代碼:
加上unless即可,意為除了result==null下緩存。
@Cacheable(value = "hostsCache", key = "#appId",unless = "#result == null)總結
以上是生活随笔為你收集整理的一次C端线上缓存问题的总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mac 上开发需要的软件
- 下一篇: springBoot JunitTest