springboot + dubbo微服務架構實踐

1.因爲dubbo服務化的便捷和高效,使得dubbo在國內很流行,加上spring boot的restful風格,使得spring boot + dubbo成爲一個很好的搭配。web

下面根據公司實際項目架構,抽離出的基本的dubbo(restful) + 微服務的架構模式。redis

微服務架構圖:spring

 

說明:數據庫

1. 用戶請求進來通過NGINX作轉發到不一樣項目,有一臺NGINX作心跳檢測備用NGINX, 請求被轉發到不一樣項目集羣,項目集羣不直接操做數據庫,而是經過RPC按需調用各個服務(這裏用了dubbo作微服務框架, 也能夠用spring cloud等),按需存取redis緩存數據,組裝數據後返回。緩存

2. redis作了主從同步,各個項目和各個微服務模塊均可對redis進行按需存取操做。tomcat

3. 定時任務集羣按需把全部基礎數據加載到redis,及定時對數據庫數據進行更新操做,定時任務集羣同時也是按需調用各個微服務模塊,不直接操做數據庫,經過服務模塊化把對數據庫的操做都封裝在指定的模塊中。restful

4. 數據庫作主從同步,主庫讀寫操做,從庫只讀操做,只開放服務模塊的IP對其進行讀寫操做。架構

5. 每一個服務化模塊都是用Spring Boot加載項目配置,傳統是用tomcat是部署web項目,如今直接用內置的微型tomcat直接加載配置文件運行服務,重啓也很是快,只要幾秒,我的感受很是好用。框架

6.每一個項目集羣調用微服務集羣時,不必定非要用dubbo, 也可使用restful接口, 只要在每一個服務模塊定義好restful接口,就能夠進行調用,一樣也是很是好用,這邊項目兩種方式都在用,開始用dubbo, 後來也加上了restful接口。模塊化

7. 項目的擴展理論上能夠經過增長項目集羣中的機器、模塊化服務集羣、Redis集羣和數據庫集羣方式實現無限擴展。並且隨着服務模塊數量的增長,項目開發將會變得愈來愈高效,只需在控制層組裝數據便可。

8. 上面這個架構在這邊公司毫無壓力地支撐起了兩千多W用戶量,推薦給你們共同參考研究。

附:dubbo的安裝配置請參考本人以前的文章:https://my.oschina.net/xiejunbo/blog/751010

相關文章
相關標籤/搜索