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