SpringBoot使用Redis提升天氣預報應用的併發訪問能力

waylau發表於2018-02-12

有時,為了提升整個網站的效能,我們會將經常需要訪問資料快取起來,這樣,在下次查詢的時候,能快速的找到這些資料。
快取的使用與系統的時效性有著非常大的關係。當我們的系統時效性要求不高時,則選擇使用快取是極好的。當系統要求的時效性比較高時,則並不適合用快取。
本文,我們將演示如何通過整合 Redis 伺服器來進行資料的快取,以提高微服務的併發訪問能力。

為啥我們需要快取

在之前的文章中,我們已經介紹瞭如何使用 Spring Boot 來快速實現一個天氣預報服務應用micro-weather-basic(見 https://waylau.com/spring-boot-weather-report/)。通過該應用,能實現簡單的天氣查詢。

天氣資料介面,本身時效性不是很高,而且又因為是 Web 服務,在呼叫過程中,本身是存在延時的。所以,採用快取,一方面可以有效減輕訪問天氣介面服務帶來的延時問題,另一方面,也可以減輕天氣介面的負擔,提高併發訪問量。

特別地,我們是使用的第三方免費的天氣 API,這些 API 往往對使用者的呼叫次數及頻率有一定的限制。所以為了減輕天氣 API 提供方的負荷,我們並不需要實時去呼叫其第三方介面。

micro-weather-basic的基礎上,我們構建了一個micro-weather-redis專案,作為示例。

開發環境

為了演示本例子,需要採用如下開發環境:

  • JDK 8
  • Gradle 4.0
  • Spring Boot Web Starter 2.0.0.M4
  • Apache HttpClient 4.5.3
  • Spring Boot Data Redis Starter 2.0.0.M4
  • Redis 3.2.100

專案配置

Spring Boot Data Redis 提供了 Spring Boot 對 Redis 的開箱即用的功能。在原有的依賴的基礎上,新增 Spring Boot Data Redis Starter 的依賴。

// 依賴關係
dependencies {
    //...
 
    // 新增 Spring Boot Data Redis Starter 依賴
    compile(`org.springframework.boot:spring-boot-starter-data-redis`)

     //...
}

下載安裝、執行 Redis

在 Linux 平臺上安裝 Redis 比較簡單,可以參考官方文件來即可,詳見https://github.com/antirez/redis

而在 Windows 平臺,微軟特別為 Redis 製作了安裝包,下載地址見 https://github.com/MicrosoftArchive/redis/releases。本書所使用的案例,也是基於該安裝包來進行的。雙擊 redis-server.exe 檔案,就能快速啟動 Redis 伺服器了。

安裝後,Redis 預設執行在

""""""<>""<>""""""

"""""""""""""""""""""""<<>""""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""""""""""""""""""""""""""""<<>""""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""""""""""""""""""""""""""""<<>""""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>""""""""""""""""""""""""<<>"""""""""""""""""""""""""""


相關文章