您好,登錄后才能下訂單哦!
簡單的說就是將一個整體的應用按照一定的規(guī)則拆分成一個個獨立的應用,這些獨立的應用后面又組合成了一個整體的應用。
比如說一個博客系統(tǒng),我可能包含了發(fā)表文章,用戶登錄,用戶評論等功能,如果是一個單一的應用這些功能都會包含在這個應用里面。
而如果是微服架構(gòu) 這些功能可能會包含在 文章服務,用戶服務,評論服務里面。
這是我簡單寫的一個微服例子
整體實現(xiàn)了發(fā)文章,瀏覽文章。用戶登錄,用戶評論的功能。
分別有 用戶服務,文章服務,評論服務,文件服務組成。
服務的編排
我的系統(tǒng)需要怎么要劃分我的服務,一個是按照業(yè)務功能劃分,每個服務只負責單一的業(yè)務。
服務劃分的太細導致服務偏多,對于維護和開發(fā)都會增加不少難度,劃分的太粗,又可能達不到當初使用微服的預想。所以采用微服架構(gòu)前服務的劃分要詳細考慮。
分布式事物
由于系統(tǒng)劃分成為了 一個個獨立的系統(tǒng),個個系統(tǒng)之間的采用 REST API方式,本地事物無法使用與夸多個系統(tǒng)的事物。所以分布式事物是微服需要解決的重中之重。一般微服的事物多采用可靠事件處理。后面出再討論。
夸表查詢
不同的服務,數(shù)據(jù)庫是不共享的,都有獨立的數(shù)據(jù)庫,所以 查詢的時候不能 采用單體架構(gòu) 的 join 等語句與跨表查詢,查詢方面增加了不少難度。
持續(xù)集成與部署
微服的持續(xù)集成相對于單體應用要復雜的多,應為你有更多的服務需要部署,部署的時候你需要更多的硬件設備。所以微服常常會與docker一起使用,方便集成與服務擴容。
測試
微服的測試,由于服務的劃分,不僅需要對單獨的服務進行測試還需要對整體的功能進行測試。對測試也提高了一個難度。
spring cloud 集成了微服常用的組件,包含了服務的注冊與發(fā)現(xiàn),服務調(diào)用,負載均衡,熔斷,監(jiān)控,配置管理,服務網(wǎng)關等。配合spring 龐大的技術站,spring cloud也漸漸成為了 微服的代名詞。
主要的一些組件:
針對于上面所涉及到的知識點我總結(jié)出了有1到5年開發(fā)經(jīng)驗的程序員在面試中涉及到的絕大部分架構(gòu)面試題及答案做成了文檔和架構(gòu)視頻資料免費分享給大家(包括Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并發(fā)等架構(gòu)技術資料),希望能幫助到您面試前的復習且找到一個好的工作,也節(jié)省大家在網(wǎng)上搜索資料的時間來學習,也可以關注我一下以后會有更多干貨分享。
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。