springboot微服務的開發利器

一、微服務和微服務架構

1.1)什麼是微服務
        把一個單一的應用程序劃分爲一組小 的服務,每個小的服務都會運行在自己的進程中,服務之間通過輕量級的通信機制(http的rest api)進行通信,那麼 一個個的小服務就是微服務。傳統的的單一電商應用來說,訂單,支付,用戶,商品,庫存等模塊都在一個項目中,若某一個模塊出 現線上bug,會導致整個版本發佈回退.  若把單一應用拆分爲一個一微服務,比如訂單微服務,用戶微服務,商品微服務,積分微服務等,若某 一個微服務出錯不會導致整個版本回退。    

1.2)什麼是微服務架構       

        微服務架構是一種架構模式(用於服務管理微服務的),它把一組小的服務互相協調、互相配合,並且 完成功能。每個服務運行在其獨立的進程中,服務與服務間採用輕量級的通信機制互相協作(通常是基 於HTTP 協議的RESTfulAPI )。每個服務都圍繞着具體業務進行構建,並且能夠被獨立的部署到生產環境 

1.3)微服務的優點

    ①:每個服務足夠內聚,足夠小,代碼容易理解這樣能聚焦一個指定的業務功能或業務需求(職責單 一)

    ②:開發簡單、開發效率提高,一個服務可能就是專一的只幹一件事,微服務能夠被小團隊單獨開發,這 個小團隊是 2 到 5 人的開發人員組成。

    ③:微服務能使用不同的語言開發。

    ④:易於和第三方集成,微服務允許容易且靈活的方式集成自動部署,通過持續集成工具,如 Jenkins,Hudson,bamboo。

    ⑤:微服務只是業務邏輯的代碼,不會和 HTML,CSS或其他界面組件混合。

    ⑥:每個微服務都有自己的存儲能力,可以有自己的數據庫。也可以有統一數據庫。

1.4)微服務的缺點

    ①開發人員要處理分佈式系統的複雜性(分佈式事物)
    ②:多服務運維難度,隨着服務的增加,運維的壓力也在增大
    ③:系統部署依賴
    ④:服務間通信成本
    ⑤:數據一致性

 

二、springboot的認識

2.1)優點

     ①、springboot 能在最小的阻力下,自動配置消除了傳統Spring應用程序裏的很多樣板配置,不用在spring的配置上花更多的功夫,甚至完全不用配置,更加專注於應用程序的功能,spring雖然在2.5加入了註解掃描,但是還是需要少量的spring的配置。

    ②、起步依賴,需要什麼功能,自動引入相關的類庫。提供衆多的起步依賴,降低了項目依賴的複雜度。根據依賴的傳遞,面對版本衝突和兼容的問題,方便管理

    ③、內嵌tomcat,jetty容器,不用打war包,放到容器裏執行,直接java -jar xx.jar可啓動項目

    ④、Actuator 檢視應用程序狀態(健康檢查)

2.2)缺點

    ①、springboot內部對jsp的支持並不是特別理想,而springboot推薦的視圖是Thymeleaf

    ②、雖然springboot減少了一些配置,但實際上是使用了更多的註解在相應的配置類上,這樣導致相對於之前更難的理解出組件的依賴關係和加載的原理

    ③、starter類似一個可拔插的插件,對maven的依賴做了封裝,對版本做了控制,對於初學者想要了解原理提升了難度

三、springboot構建項目需要引入的依賴

    3.1)引入spring-boot-starter-parent,spring-boot-starter-parent中的spring-boot-dependencies是來控制版本的,我們引入裏面有的依賴不需要寫版本號,如果沒有自然要寫版本號

        

3.2)spring-boot-starter-web   裏面依賴了spring-web和webmvc等web開發需要的一些依賴

    

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章