關(guān)于Spring Cloud的思考和總結(jié)
博主開發(fā)使用了Spring Cloud,使用過程中的一些學(xué)習(xí)和經(jīng)驗,體會通過本博文進行記錄。
以前的架構(gòu),單體應(yīng)用:

加入ESB,通過總線進行調(diào)用:

微服務(wù)架構(gòu):

區(qū)別:
- SOA架構(gòu)主要針對企業(yè)級,采用ESB服務(wù)(ESB企業(yè)服務(wù)總線),非常重,需要序列化和反序列化,采用XML格式傳輸。
- 微服務(wù)架構(gòu)主要用于互聯(lián)網(wǎng)公司,輕量級,小巧,獨立運行,基于HTTP+Rest+JSON格式傳輸
- ESB可以說是傳統(tǒng)中間技術(shù)與XML、Web服務(wù)等技術(shù)相結(jié)合的產(chǎn)物。
單體架構(gòu)存在的缺點:
- 復(fù)雜性逐漸變高
- 技術(shù)債務(wù)主鍵上升
- 部署速度主鍵變慢
- 阻礙技術(shù)創(chuàng)新
- 無法按需伸縮
微服務(wù)概念論文翻譯版參考:http://www.rzrgm.cn/beanbag/p/9911452.html
- 簡而言之,微服務(wù)架構(gòu)風(fēng)格[1]這種開發(fā)方法,是以開發(fā)一組小型服務(wù)的方式來開發(fā)一個獨立的應(yīng)用系統(tǒng)。其中每個小型服務(wù)都運行在自己的進程中,并經(jīng)常采用HTTP資源API這樣輕量的機制來相互通信。這些服務(wù)圍繞業(yè)務(wù)功能進行構(gòu)建,并能通過全自動的部署機制來進行獨立部署。這些微服務(wù)可以使用不同的語言來編寫,并且可以使用不同的數(shù)據(jù)存儲技術(shù)。對這些微服務(wù),我們僅做最低限度的集中管理。(去中心化)
- “微服務(wù)架構(gòu)是一種架構(gòu)模式,它提倡將單一應(yīng)用程序劃分成一組小的服務(wù),服務(wù)之間相互協(xié)調(diào)、互相配合,為用戶提供最終價值。每個服務(wù)運行在其獨立的進程中,服務(wù)和服務(wù)之間采用輕量級的通信機制相互溝通(通常是基于HTTP的Restful API).每個服務(wù)都圍繞著具體的業(yè)務(wù)進行構(gòu)建,并且能夠被獨立的部署到生產(chǎn)環(huán)境、類生產(chǎn)環(huán)境等。另外,應(yīng)盡量避免統(tǒng)一的、集中的服務(wù)管理機制,對具體的一個服務(wù)而言,應(yīng)根據(jù)業(yè)務(wù)上下文,選擇合適的語言、工具對其進行構(gòu)建"
- 微服務(wù)是一種架構(gòu)風(fēng)格,一個大型復(fù)雜軟件應(yīng)用由一個或多個微服務(wù)組成。系統(tǒng)中的各個微服務(wù)可被獨立部署,各個微服務(wù)之間是松耦合的。每個微服務(wù)僅關(guān)注于完成一件任務(wù)并很好地完成該任務(wù)。在所有情況下,每個任務(wù)代表著一個小的業(yè)務(wù)能力。
微服務(wù)架構(gòu)應(yīng)該具備的特性
- 每個微服務(wù)可獨立運行在自己的進程里。
- 一系列獨立運行的微服務(wù)共同構(gòu)建起整個系統(tǒng)。
- 每個服務(wù)為獨立的業(yè)務(wù)開發(fā),一個微服務(wù)只關(guān)注某個特定的功能,例如訂單管理、用戶管理等。
- 微服務(wù)之間通過一些輕量的通信機制進行通信,例如通過RPC或者RESTful API進行調(diào)用。
- 可以使用不同的語言與數(shù)據(jù)存儲技術(shù)。
- 全自動的部署機制。

微服務(wù)優(yōu)點:
- 易于開發(fā)和維護
- 啟動較快
- 局部修改容易部署
- 技術(shù)棧不受限
- 按需伸縮
- DevOps
經(jīng)驗總結(jié):
Spring Boot banner可以定制的
各種依賴后,Tomcat也引入了。
Spring Boot 可配置項很多,比如 context path 我們之前在Servlet 中可以配置的
Spring Boot可以通過gradle最終打成的是boot jar 全部依賴都在里面,非常獨立。打成一個可執(zhí)行的jar包。通過命令行可以直接運行。web.xml也沒有了。但是也可以通過Spring提供的入口方式恢復(fù),但是很多情況下是沒必要的。

解壓后:

Jar包里面的內(nèi)容解釋:
1.BOOT-INF:里面包含的是:

開發(fā)的編寫的Java編譯后的class字節(jié)碼。 還有依賴的Jar包。 配置文件。
2.META-INF:

其中maven:

MANEFST.MF: 清單文件,描述可執(zhí)行jar包的一些信息。
3. org的包結(jié)構(gòu)里面的內(nèi)容。非常重要。

Spring Boot集成 dubbo.在使用dubbo時候,dubbo會提供一個starter.

浙公網(wǎng)安備 33010602011771號