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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM