1. <button id="t1m4q"></button>

        2. <dd id="t1m4q"></dd>

          教育行業(yè)A股IPO第一股(股票代碼 003032)

          全國咨詢(xún)/投訴熱線(xiàn):400-618-4000

          微服務(wù)架構是什么?有哪些優(yōu)點(diǎn)和不足?

          更新時(shí)間:2022年03月29日17時(shí)57分 來(lái)源:傳智教育 瀏覽次數:

          微服務(wù)架構定義

          微服務(wù)架構是一種架構風(fēng)格和架構思想,它倡導我們在傳統軟件應用架構的基礎上,將系統業(yè)務(wù)按照功能拆分為更加細粒度的服務(wù),所拆分的每一個(gè)服務(wù)都是一個(gè)獨立的應用,這些應用對外提供公共的API,可以獨立承擔對外服務(wù)的職責,通過(guò)此種思想方式所開(kāi)發(fā)的軟件服務(wù)實(shí)體就是“微服務(wù)”,而圍繞著(zhù)微服務(wù)思想構建的一系列體系結構(包括開(kāi)發(fā)、測試、部署等),我們可以將它稱(chēng)之為“微服務(wù)架構”。

          根據微服務(wù)架構的定義,將傳統單體架構拆分為微服務(wù)架構的方式如圖1-4所示。

          圖1-4傳統單體架構拆分為微服務(wù)架構

          從圖1-4中可以看出,微服務(wù)架構已將傳統單體架構中的訂單服務(wù)、商品服務(wù)和用戶(hù)服務(wù)拆分為了獨立的服務(wù),其中的每一個(gè)服務(wù)都是一個(gè)獨立的應用,可以訪(fǎng)問(wèn)自己的數據庫,這些服務(wù)對外提供公共的API,并且服務(wù)之間可以相互調用。

          注意:微服務(wù)和微服務(wù)架構是兩個(gè)不同的概念。微服務(wù)強調的是服務(wù)的大小,它關(guān)注的是某一個(gè)點(diǎn),而微服務(wù)架構是一種架構思想,需要從整體上對軟件系統進(jìn)行全面的考慮。

          微服務(wù)架構的優(yōu)點(diǎn)

          與傳統單體應用架構相比,微服務(wù)架構有很多優(yōu)點(diǎn),具體表現如下:

          1.復雜度可控

          微服務(wù)架構在將應用分解的同時(shí),規避了原本復雜度無(wú)止境的積累。每一個(gè)微服務(wù)專(zhuān)注于單一功能,并通過(guò)定義良好的接口清晰地表述服務(wù)邊界。由于體積小、復雜度低,每個(gè)微服務(wù)可由一個(gè)小規模開(kāi)發(fā)團隊完全掌控,易于保持高可維護性,并提高了開(kāi)發(fā)效率。

          2.可獨立部署

          由于微服務(wù)具備獨立的運行進(jìn)程,所以每個(gè)微服務(wù)都可以獨立部署。當某個(gè)微服務(wù)發(fā)生變更時(shí),無(wú)需編譯、部署整個(gè)應用。由微服務(wù)組成的應用相當于具備一系列可并行的發(fā)布流程,使得發(fā)布更加高效,同時(shí)降低了對生產(chǎn)環(huán)境所造成的風(fēng)險,最終縮短應用交付周期。

          3.技術(shù)選型靈活

          微服務(wù)架構下,技術(shù)的選型是多樣化的。每個(gè)團隊都可以根據自身服務(wù)的需求和行業(yè)發(fā)展的現狀,自由選擇最適合的技術(shù)。由于每個(gè)微服務(wù)相對簡(jiǎn)單,當需要對技術(shù)進(jìn)行升級時(shí),所面臨的風(fēng)險較低,甚至完全重構一個(gè)微服務(wù)也是可行并容易的。

          4.易于容錯

          當架構中的某一組件發(fā)生故障時(shí),在單一進(jìn)程的傳統架構下,故障很有可能在進(jìn)程內擴散,導致整個(gè)應用不可用。在微服務(wù)架構下,故障會(huì )被隔離在單個(gè)服務(wù)中。若設計良好,其他服務(wù)可通過(guò)重試、平穩退化等機制實(shí)現應用層面的容錯。

          5.易于擴展

          單個(gè)服務(wù)應用也可以實(shí)現橫向擴展,這種擴展可以通過(guò)將整個(gè)應用完整的復制到不同的節點(diǎn)中實(shí)現。當應用的不同組件在擴展需求上存在差異時(shí),微服務(wù)架構便體現出其靈活性,因為每個(gè)服務(wù)可以根據實(shí)際需求獨立進(jìn)行擴展。

          6.功能特定

          每個(gè)微服務(wù)有自己的業(yè)務(wù)邏輯和適配器,并且一個(gè)微服務(wù)一般只完成某個(gè)特定的功能,例如商品服務(wù)只管理商品、客戶(hù)服務(wù)只管理客戶(hù)等。這樣開(kāi)發(fā)人員可以完全的專(zhuān)注于某一個(gè)特定功能的開(kāi)發(fā),而不用過(guò)多的考慮其他,從而提高開(kāi)發(fā)效率。

          除了上述幾點(diǎn)好處外,微服務(wù)架構還有很多好處,由于篇幅有限,這里就不一一列舉了,但從微服務(wù)架構的好處可以看出,使用微服務(wù)可以很好的解決傳統單體架構中的問(wèn)題。

          微服務(wù)架構的不足

          微服務(wù)架構除了有上面所講的各種優(yōu)點(diǎn)外,還存在著(zhù)一些不足,這些不足的具體表現如下:

          1.開(kāi)發(fā)人員必須處理創(chuàng )建分布式系統的復雜性

          ①開(kāi)發(fā)工具(或IDE)是面向構建傳統的單體應用程序的,不為開(kāi)發(fā)分布式應用程序提供全面功能上的支持。

          ②測試更加困難。在微服務(wù)架構中,服務(wù)數量眾多,每個(gè)服務(wù)都是獨立的業(yè)務(wù)單元,服務(wù)主要通過(guò)接口進(jìn)行交互,如何保證依賴(lài)的正常,是測試面臨的主要挑戰。

          ③開(kāi)發(fā)人員必須實(shí)現服務(wù)間的通信機制。

          ④實(shí)現用例跨多個(gè)服務(wù)時(shí),需要面對使用分布式事務(wù)管理的困難。

          ⑤l實(shí)現跨多個(gè)服務(wù)的用例,需要團隊之間進(jìn)行仔細的協(xié)調。

          2.部署的復雜性

          在部署和管理時(shí),由許多不同服務(wù)類(lèi)型組成的系統的操作比較復雜,這將要求開(kāi)發(fā)、測試及運維人員有相應的技術(shù)水平。

          3.增加內存消耗

          微服務(wù)架構用多個(gè)服務(wù)實(shí)例取代了1個(gè)單體應用程序實(shí)例,如果每個(gè)服務(wù)都運行在自己的JVM中,那么有多少個(gè)服務(wù)實(shí)例,就會(huì )有多少個(gè)實(shí)例在運行時(shí)的內存開(kāi)銷(xiāo)。

          微服務(wù)架構與SOA的區別

          通過(guò)前3個(gè)小節的學(xué)習,相信有些讀者對微服務(wù)架構已經(jīng)有了一定的了解。在學(xué)完后,細心的讀者可能會(huì )有這樣一個(gè)疑問(wèn),微服務(wù)架構與SOA都是對單體架構的拆分,那么他們有什么不同呢?下面通過(guò)一個(gè)表格對兩者的區別進(jìn)行對比,如表1-1所示。

          表1-1微服務(wù)架構與SOA的區別






          猜你喜歡:

          怎樣搭建微服務(wù)架構?

          微服務(wù)架構有什么優(yōu)勢?

          哪些公司適合用微服務(wù)架構?如何將系統拆分為微服務(wù)?

          史上最全面微服務(wù)教程:SpringCloud+Elasticsearch+分布式系統

          傳智教育Java培訓課程

          0 分享到:
          和我們在線(xiàn)交談!
          久久久久亚洲AV成人片一级毛片_三级中文字幕在线视频_国产黄频免费无数次看_最新精品亚洲成a人在线观看