SpringBoot企業級框架

Zebra 微服務框架 springBoot

GitHub地址:https://github.com/ae6623/Zebra

OSCGit地址:http://git.oschina.net/ae6623/Zebra

Zebra4J是一款使用Sping Boot特性全新開發的微服務WEB框架,嘗試封裝一些常用框架比如dubbo等作爲spring-boot組件,結合微服務的框架思想,利用NodeJsZebra4Js作爲應用網關,使得各個功能分層服務,持續迭代,解放團隊生產力,快速構建企業級Web 應用。

Frameworks and Tools 構建

  • Java&IDE: JDK8 Lamda/Intellij Idea 16
  • Backend: SpringBoot Docker Zookeeper (Configured by annotation/app)
  • Database: Mysql/MongoDB/Redis
  • Cache:Memcached/Redis
  • Web Server: Nginx/Tomcat 7
  • Build Tool: Maven
  • Other: Commons-Dbcp2(database connection pool) JUnit sl4j Jackson FastJson
  • Zebra4J Port:http://localhost:8888
  • Zebra4Js Port:http://localhost:8360

About 關於落雨

License 許可協議

1.什麼是微服務

微服務是一種分佈式的架構,它所有的組件(也就是服務)會被部署爲單獨的應用程序,並通過某種遠程訪問協議(Rpc/Restful)進行通訊。分佈式應用的挑戰之一就是如何管理遠程服務的可用性和它們的響應。服務可用性是服務消費者連接服務並能夠發送請求的能力,服務響應則關注服務的響應時間。

2.微服務的侷限

並不是所有的業務系統都適用於微服務,不能說現在流行這個,我就把公司上上下下幾千個系統全部放入Docker,全部都架上微服務的袈裟,你應該靜下心來,仔細分析你的商業需求、商業驅動、組織架構和團隊技術環境,因爲微服務並不適應所有的場景。而且基於RESTful的協議請求,很容易被多次重複調用,此時應考慮加入消息機制,利用消息進行事務的處理以及異步服務的調用,在此需要提醒各位在數據一致性高可用方面做好取捨,準備好一致性的補償機制。

3.微服務的好處

打了這麼多預防針,你還是跟到了這裏,那麼我們來談談微服務的好處,

  • 應用太大,我們上線一個小功能,並不想再所有程序都打包上線,這很煩,我們需要拆開,拆成單個的服務出來。每個服務都有一個Rpc或者RESTful的Api進行業務驅動,由類似於Spring cloud或者Zookeeper的服務管理者去發現和監聽各個服務節點的狀態。
  • 拆出來的微服務,就可以交給不同的團隊進行開發,維護更加簡單,不會因爲一個模塊上線失敗,而整體回滾。
  • 部署方便,Jekens + Docker直接部署,對於前端而言,根本不知道後臺什麼時候突然部署了1w臺服務,用戶幾乎0察覺,輕鬆應對秒殺等業務,流量下來之後,隨時Stop服務。

4.微服務的實現

  • 1.網關
    • 採用API的方式,製造一個所有的端都支持的網關,作爲唯一的入口,可以提供授權、監控、負載、緩存、靜態、返回相應等入口,建議使用RESTfulhttp接口。
    • 網關的作用
      • 提供統一服務入口,讓微服務對前臺透明
      • 聚合後臺的服務,節省流量,提升性能
      • 提供安全,過濾,流控等API管理功能
    • 網關要考慮交互的方式
      • 客戶端 1:1 服務端
      • 客戶端 1:N 服務端
  • 2.服務發現
  • 3.服務調用
    • 同步調用
      • Rpc
      • Rest
    • 異步調用
      • MQ
  • 4.服務可用
    • 重試
    • 限流
    • 熔斷
    • 負載
    • 降級
    • 緩存
  • 5.服務發佈
    • Jekins Docker
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章