


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、微服務(wù)架構(gòu):Spring-Cloud什么是微服務(wù)?微服務(wù)就是把原本臃腫的一個(gè)項(xiàng)目的所有模塊拆 來并做到互相沒有關(guān)聯(lián),甚至可以不使用同一個(gè)數(shù)據(jù)庫。 比如:項(xiàng)目里面有User模塊和Power模塊,但是User模塊和Power模塊并沒有直接關(guān)系,僅僅只是一些數(shù)據(jù)需要交 互,那么就可以吧這2個(gè)模塊單獨(dú) 來,當(dāng)user需要調(diào)用power的時(shí)候,power是一個(gè)服務(wù)方,但是power需要調(diào)用user的時(shí)候,user又是服務(wù)方了, 所以,他們并不在乎誰是服務(wù)方誰是調(diào)用方,他們都是2個(gè) 的服務(wù),這時(shí)候,微服務(wù)的概念就出來了。經(jīng)典問題:微服務(wù)和分布式的區(qū)別談到區(qū)別,我們先簡單說一下分布式是什么,所謂分布式,就是
2、將偌大的系統(tǒng)劃分為多個(gè)模塊(這一點(diǎn)和微服務(wù)很 像)部署到不同 上(因?yàn)橐慌_ 可能承受不了這么大的 或者說一臺非常好的服務(wù)器的成本可能夠好幾臺普通的了),各個(gè)模塊通過接口進(jìn)行數(shù)據(jù)交互,其實(shí) 分布式也是一種微服務(wù)。 因?yàn)槎际前赡K拆 來變?yōu)榈膯卧峁┙涌趤碚{(diào)用,那么 他們本質(zhì)的區(qū)別在哪呢? 他們的區(qū)別主要體現(xiàn)在“目標(biāo)”上, 何為目標(biāo),就是你這樣架構(gòu)項(xiàng)目要做到的事情。 分布式的目標(biāo)是什么? 我們剛剛也看見了, 就是一臺 承受不了的,或者是成本問題 , 不得不使用多臺 來完成服務(wù)的部署, 而微服務(wù)的目標(biāo) 只是讓各個(gè)模塊拆 來, 被互相影響,比如模塊的升級亦或是出現(xiàn)BUG等等.講了這么多,可以用一句話
3、來理解:分布式也是微服務(wù)的一種,而微服務(wù)他可以是在一臺 上。微服務(wù)與Spring-Cloud的關(guān)系(區(qū)別)微服務(wù)只是一種項(xiàng)目的架構(gòu)方式,或者說是一種概念,就如同我們的MVC架構(gòu)一樣, 那么Spring-Cloud便是對這種技術(shù)的實(shí)現(xiàn)。微服務(wù)一定要使用Spring-Cloud嗎?我們剛剛說過,微服務(wù)只是一種項(xiàng)目的架構(gòu)方式,如果你足夠了解微服務(wù)是什么概念你就會知道,其實(shí)微服務(wù)就算 不借助任何技術(shù)也能實(shí)現(xiàn),只是有很多問題需要我們解決罷了例如:負(fù)載均衡,服務(wù)的 與發(fā)現(xiàn),服務(wù)調(diào)用,路由。等等等等一系列問題,所以,Spring-Cloud 就出來了,Spring-Cloud將處理這些問題的的技術(shù)全部打包好
4、了,就類似那種開袋即食的感覺。Spring-Cloud項(xiàng)目的搭建因?yàn)閟pring-cloud是基于spring-boot項(xiàng)目來的,所以我們項(xiàng)目得是一個(gè)spring-boot項(xiàng)目,至于spring-boot項(xiàng)目, 這節(jié)我們先不討論,這里要注意的一個(gè)點(diǎn)是spring-cloud的版本與spring-boot的版本要對應(yīng)下圖:在我這里 版本是這樣的spring-boot:<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent<
5、;/artifactId><version>2.0.2.RELEASE</version></parent>spring-cloud:<dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>Finchley.SR2&
6、lt;/version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement>當(dāng)你項(xiàng)目里面有這些依賴之后,你的spring cloud項(xiàng)目已經(jīng)搭建好了(初次 spring-cloud可能需要一點(diǎn)時(shí)間)Spring-Cloud組件:eureka:eureka是什么?eureka是Netix的子模塊之一,也是一個(gè) 的模塊,eureka里有2個(gè)組件,一個(gè)是EurekaServer(一個(gè) 的項(xiàng)
7、目) 這個(gè)是用于 服務(wù)以實(shí)現(xiàn)中間層服務(wù)器的負(fù)載平衡和故障轉(zhuǎn)移,另一個(gè)便是EurekaClient(我們的微服務(wù)) 它是用于與Server交互的,可以使得交互變得非常簡單:只需要通過服務(wù)標(biāo)識符即可拿到服務(wù)。與spring-cloud的關(guān)系:Spring Cloud 封裝了 Netix 公司開發(fā)的 Eureka 模塊來實(shí)現(xiàn)服務(wù) 和發(fā)現(xiàn)(可以對比Zookeeper)。Eureka 采用了 C-S 的設(shè)計(jì)架構(gòu)。Eureka Server 作為服務(wù) 功能的服務(wù)器,它是服務(wù) 中心。而系統(tǒng)中的其他微服務(wù),使用 Eureka 的客戶端連接到 Eureka Server并維持心跳連接。這樣系統(tǒng)的維護(hù) 就可以通過
8、 Eureka Server 來 系統(tǒng)中各個(gè)微服務(wù)是否正常運(yùn)行。SpringCloud 的一些其他模塊(比如Zuul)就可以通過 Eureka Server 來發(fā)現(xiàn)系統(tǒng)中的其他微服務(wù),并執(zhí)行相關(guān)的邏輯。關(guān)系圖:如何使用?在spring-cloud項(xiàng)目里面加入依賴:eureka客戶端:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></
9、dependency>eureka服務(wù)端:<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-server</artifactId></dependency>eureka服務(wù)端項(xiàng)目里面加入以下配置:server: port: 3000eureka: server:enable-self-preservation: false #關(guān)閉自我保護(hù)機(jī)制eviction-i
10、nterval-timer-in-ms: 4000 #設(shè)置 間隔( :毫秒 默認(rèn)是60*1000)instance:hostname: localhostclient:registerWithEureka: false #不把 作為一個(gè)客戶端 到 身上當(dāng)然,不是全部必要的,這里只是把我這里的配置copy過來了然后在spring-boot啟動(dòng)項(xiàng)目上 加入注解:EnableEurekaServer 就可以啟動(dòng)項(xiàng)目了/* 想要咨詢vip課程相關(guān)的同學(xué)加一下木蘭* 想要往期 的同學(xué)加一下安其拉* author:魯班學(xué)院-商鞅*/ EnableEurekaServer SpringBootApplica
11、tionpublic class AppEureka public static void main(String args) SpringApplication.run(AppEureka.class);如果看見這個(gè)圖片,那么說明你就搭建好了:這個(gè)警告只是說你把他的自我保護(hù)機(jī)制關(guān)閉了eureka客戶端配置:server: port: 6000eureka:fetchRegistry: false #不需要從服務(wù)端獲取 信息(因?yàn)樵谶@里 就是服務(wù)端,而且已經(jīng)禁用 注冊了)serviceUrl:defaultZone: http:/$eureka.instance.hostname:$serve
12、r.port/eureka然后在客戶端的spring-boot啟動(dòng)項(xiàng)目上 加入注解:EnableEurekaClient 就可以啟動(dòng)項(xiàng)目了 這里就不截圖了我們直接來看效果圖:這里我們能看見 名字叫server-power的(圖中將其大寫了) id為 power-1的服務(wù) 到我們的Eureka上面來了至此,一個(gè)簡單的eureka已經(jīng)搭建好了。client: serviceUrl:defaultZone:#eureka服務(wù)端提供的 地址 參考服務(wù)端配置的這個(gè)路徑instance:instance-id: power-1 #此實(shí)例 到eureka服務(wù)端的唯一的實(shí)例ID prefer-ip-address: true #是否顯示IP地址leaseRenewalIntervalInSeconds: 10 #eureka客戶需要
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- LiNi(1-x-y)CoxAlyO2的制備及改性研究
- 基于深度學(xué)習(xí)的車道保持系統(tǒng)的研究
- 2025少先隊(duì)藝術(shù)創(chuàng)作展示計(jì)劃
- 2024年中考三模 地理(廣西卷)(參考答案及評分標(biāo)準(zhǔn))
- 家鄉(xiāng)的明月作文150字(14篇)
- 2024年中考二模 地理(海南卷)(參考答案及評分標(biāo)準(zhǔn))
- 酒店旅游智能預(yù)訂與服務(wù)系統(tǒng)開發(fā)方案
- 商戶促銷活動(dòng)合作合同
- 《中國的多民族與民族文化:初中地理教案》
- 《中國傳統(tǒng)文化課程教案:書法學(xué)習(xí)教案》
- 課程思政的認(rèn)識、實(shí)踐與思考課件
- 十天搞定英語四級高頻詞匯帶音標(biāo)
- 第一種、第二種工作票
- 辦公室業(yè)務(wù)培訓(xùn)提綱課件
- 電磁場與電磁波期末考試復(fù)習(xí)試題4套(部分含答案)
- 國開電大《職業(yè)素質(zhì)(職業(yè)素質(zhì)專)》形考1答案
- 過敏性休克的急救及處理流程教材課件(28張)
- 交通協(xié)管員勞務(wù)外包服務(wù)方案
- 滬教牛津版七年級上冊英語全冊教案
- 先天性心臟病患兒護(hù)理查房
- 2022年山東省威海市中考數(shù)學(xué)試題及答案解析
評論
0/150
提交評論