真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

SpringCloud微服務(wù)的概念是什么

本篇文章為大家展示了Spring Cloud微服務(wù)的概念是什么,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

成都創(chuàng)新互聯(lián)公司是網(wǎng)站建設(shè)專家,致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營銷,專業(yè)領(lǐng)域包括網(wǎng)站建設(shè)、成都網(wǎng)站制作、電商網(wǎng)站制作開發(fā)、微信小程序、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設(shè)計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡(luò)品牌建設(shè)經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!

單體架構(gòu)

簡介

在軟件設(shè)計中,頻繁被使用的就是我們的經(jīng)典三層架構(gòu)了。
1、表示層:用于直接與用戶進(jìn)行交互,通常是頁面、UI等;
2、業(yè)務(wù)邏輯層(service):用于處理業(yè)務(wù),比如用戶從表示層輸入了消息就要經(jīng)過業(yè)務(wù)邏輯層的邏輯處理之后再進(jìn)行的相關(guān)操作;
3、數(shù)據(jù)訪問層(dao):用于與數(shù)據(jù)庫進(jìn)行交互;

而在單體應(yīng)用中,我們就會把這三層都放在一個工程中,最終通過打成war包發(fā)布到服服務(wù)器的tomcat的web-app中上線??梢哉f是十分方便的一個設(shè)計理念了!

優(yōu)劣

單體應(yīng)用的優(yōu)勢在于:
1、性價比非常高,通常只需要一臺服務(wù)器就能夠把項目跑起來;
2、開發(fā)的速度也比較快,運維較簡單,項目架構(gòu)比較簡單明了,適合小型應(yīng)用開發(fā)。

單體應(yīng)用的劣勢在于:
1、所有的業(yè)務(wù)相關(guān)操作都放在了一個服務(wù)器上,如果項目中某個業(yè)務(wù)出現(xiàn)了bug,不急時發(fā)現(xiàn)就會導(dǎo)致整個項目的癱瘓,最終宕機,而這對于一個大型網(wǎng)站來說無疑是十分致命的問題;
2、業(yè)務(wù)越來越復(fù)雜的時候,單體應(yīng)用的代碼量就會越來越多,導(dǎo)致最后的代碼可讀性、可維護(hù)性越來越差,最終只能進(jìn)行重構(gòu);
3、用戶越來越多的時候,單體應(yīng)用的并發(fā)能力有限;

由此可見:在應(yīng)用初期,單體應(yīng)用從成本、開發(fā)時間和運維等方面都有優(yōu)勢,但是單體應(yīng)用會隨著業(yè)務(wù)量和用戶量的增加,會暴露出的缺點也是顯而易見的,所以到了現(xiàn)在的這個完全互聯(lián)網(wǎng)的時代,單體應(yīng)用已經(jīng)不適應(yīng)時代的發(fā)展了!

微服務(wù)

什么是微服務(wù)

微服務(wù)最初是由Martin Fowler在2014年的一篇文章中提出來的,簡單來說,就是將單一的程序開發(fā)成一個微服務(wù),每個服務(wù)運行在自己的進(jìn)程中,通常使用HTTP RESTful API的通信風(fēng)格,獨立部署的工程!

微服務(wù)特點

1、微服務(wù)單元按業(yè)務(wù)來劃分:
服務(wù)到底要多“微”,這是一個很難的界定的概念,可以從三個方面來定義:
1、根據(jù)代碼量定義
2、根據(jù)開發(fā)時間的長短來定義
3、根據(jù)業(yè)務(wù)大小來劃分
按業(yè)務(wù)劃分的微服務(wù)是主流,各個微服務(wù)獨立部署,獨立運行在進(jìn)程中。微服務(wù)單元是高度組件化的模塊,并且提供了穩(wěn)定的模塊邊界,服務(wù)與服務(wù)之間沒有任何耦合。

2、微服務(wù)通過HTTP來互相通信
微服務(wù)之間通過簡單的HTTP來調(diào)用,更多的是使用RESTful API的風(fēng)格來調(diào)用,實現(xiàn)了服務(wù)與語言和平臺無關(guān),例如:使用JAVA寫的微服務(wù)可以消費使用Python寫的服務(wù)。
服務(wù)之間通信也可以通過輕量級的消息總線來實現(xiàn),例如:RabblitMQ、Kafaka等,通過發(fā)布-訂閱的設(shè)計模式來實現(xiàn)服務(wù)之間通信。
服務(wù)與服務(wù)之間通信的數(shù)據(jù)格式一般使用的是json和xml,這兩個也是與語言、平臺無關(guān)的,一般來說json更加高效、輕量。另一種是使用Protobuf進(jìn)行數(shù)據(jù)的序列化,這種方式比json更加輕量,但是可讀性十分差,需要反序列化才能讀懂,所以在Protobuf在通信協(xié)議和數(shù)據(jù)存儲中經(jīng)常被使用到。

3、微服務(wù)的數(shù)據(jù)庫獨立
服務(wù)會有他的獨立的數(shù)據(jù)庫,數(shù)據(jù)庫之間沒有任何的聯(lián)系,這樣的好處在于,隨著業(yè)務(wù)的不斷擴張,數(shù)據(jù)庫相對獨立,數(shù)據(jù)量不會太大,易于維護(hù);
但是隨之而來的問題就是如何解決分布式的事務(wù)問題了;(這個在后續(xù)介紹)

4、微服務(wù)的自動部署
一個大工程里會有許多的微服務(wù),如果讓人工去手動部署的話,難免會出紕漏,但是隨著技術(shù)的發(fā)展,docker的容器化技術(shù)的出現(xiàn),微服務(wù)的自動部署的出現(xiàn),讓微服務(wù)的部署越來越簡便。

5、服務(wù)集中化管理
隨著服務(wù)的增多,服務(wù)的管理也就越來越麻煩了,所以需要使用集中化的管理方式,市場上的主流框架就是 Spring Cloud提供的Eureka注冊中心來注冊服務(wù)和發(fā)現(xiàn)服務(wù),另外,zookeeper和Consul都是優(yōu)秀的服務(wù)集中化管理框架。

6、分布式的架構(gòu)
分布式的系統(tǒng)是集群部署的,通常是由許多臺計算機共同完成了一個微服務(wù)的部署,而分布式的架構(gòu)是通過HTTP來通信的,所以我們的微服務(wù)可以搭建在相隔萬里的不同的兩臺計算機上,對于空間沒有任何束縛。
微服務(wù)架構(gòu)是分布式的架構(gòu),而分布式的架構(gòu)比單體架構(gòu)更為復(fù)雜,主要要確定服務(wù)的獨立性和服務(wù)的準(zhǔn)去可靠性,以及分布式事務(wù)、全局鎖、全局Id等問題,都是分布式系統(tǒng)需要考慮的。

7、熔斷機制
為了防止一個服務(wù)出現(xiàn)bug,導(dǎo)致的系統(tǒng)資源的耗盡而引起的雪崩效應(yīng),系統(tǒng)應(yīng)該對微服務(wù)具有一個熔斷機制;
熔斷機制的意思就是:在一個微服務(wù)出現(xiàn)bug的時候,請求失敗次數(shù)達(dá)到一定的閾值之后,通過熔斷器讓這個微服務(wù)斷開服務(wù)主體,并且快速返回想要顯示的錯誤信息,過一段時間后再重新連接測試,如此反復(fù)的一個機制來保護(hù)整個系統(tǒng)的安全運作。
Spring Cloud中對于服務(wù)的熔斷提供了Hystrix來實現(xiàn)。

優(yōu)劣

微服務(wù)的優(yōu)勢:
1、服務(wù)進(jìn)行拆分,每個服務(wù)只是負(fù)責(zé)小小的一塊內(nèi)容,這讓復(fù)雜問題簡單化,開發(fā)、維護(hù)單個服務(wù)較為簡單;
2、微服務(wù)的系統(tǒng)是分布式的系統(tǒng),服務(wù)與服務(wù)之間沒有任何耦合,隨著業(yè)務(wù)的增加,我們可以根據(jù)業(yè)務(wù)再拆分服務(wù),這讓微服務(wù)系統(tǒng)具備很強大橫向擴展能力;
3、微服務(wù)之間完全通過HTTP協(xié)議來進(jìn)行通信,單個微服務(wù)內(nèi)部高度耦合,服務(wù)與服務(wù)之間完全獨立;
4、重寫單個微服務(wù)的業(yè)務(wù)代碼變得較為簡單;
5、微服務(wù)在CAP理論中采用的是AP架構(gòu),具有高可用(Availability)和分區(qū)容錯(Partition tolerance)的特點,高可用體現(xiàn)在系統(tǒng)7*24小時不斷的服務(wù),它要求系統(tǒng)具有大量的服務(wù)器集群配置,分區(qū)容錯性也讓系統(tǒng)更加的健壯。

微服務(wù)的劣勢:
1、微服務(wù)的復(fù)雜度比單體服務(wù)更為復(fù)雜,更難拆分,這讓我們的服務(wù)的架構(gòu)設(shè)計上應(yīng)該設(shè)計出一個很棒的架構(gòu)!
2、分布式的事務(wù)處理,如何處理分布式事務(wù)是一個業(yè)界所一直存在的問題,一般的處理方式是分為兩階段的提交:

第一個階段:服務(wù)通過發(fā)起一個分布式事務(wù),交給事務(wù)協(xié)調(diào)器TC進(jìn)行處理,事務(wù)調(diào)節(jié)器TC通過向所有參與該事物的服務(wù)節(jié)點發(fā)送處理事務(wù)的準(zhǔn)備操作,所有的參與節(jié)點執(zhí)行準(zhǔn)備操作,將Undo和Redo信息寫進(jìn)日志中,并且向事務(wù)管理器返回準(zhǔn)備操作是否成功;
第二階段:事務(wù)協(xié)調(diào)器TC在一定的時間閾值收集所有節(jié)點的準(zhǔn)備操作是否成功,如果都成功,則通知所有的節(jié)點執(zhí)行提交操作,如果有一個失敗了,則執(zhí)行回滾操作!

微服務(wù)的設(shè)計原則

1、如果在LAMP單體架構(gòu)夠用的情況下,就該使用LAMP,因為它開發(fā)速度快,性價比高,但是隨著業(yè)務(wù)的發(fā)展,用戶的激增,可以考慮把數(shù)據(jù)庫讀寫分離、加緩存、加復(fù)雜均衡服務(wù)、將應(yīng)用集群化部署等等,如果還不夠解決效率,那就可以考慮使用分布式系統(tǒng),例如微服務(wù)的系統(tǒng)架構(gòu)。
2、微服務(wù)在設(shè)計的時候一定要考慮到三大難題,服務(wù)故障的傳播性、服務(wù)的劃分、分布式事務(wù)的處理。總之,微服務(wù)的設(shè)計是漸進(jìn)的,并且是隨著業(yè)務(wù)發(fā)展而發(fā)展的!

上述內(nèi)容就是Spring Cloud微服務(wù)的概念是什么,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


本文題目:SpringCloud微服務(wù)的概念是什么
轉(zhuǎn)載來于:http://weahome.cn/article/pcsoce.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部