SpringBoot企業級框架

Zebra 微服務框架 springBoot前端

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

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

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

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.微服務的好處

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

  • 應用太大,咱們上線一個小功能,並不想再全部程序都打包上線,這很煩,咱們須要拆開,拆成單個的服務出來。每一個服務都有一個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
相關文章
相關標籤/搜索