系統軟件架構中,現在很流行微服務,那麼使用微服務就一定好麼?微服務有哪些缺點呢?

低調的牛肉


——什麼是微服務:微服務(Microservices Architecture),它是一種架構風格,一個大型複雜軟件應用由一個或多個微服務組成。系統中的各個微服務可被獨立部署,各個微服務之間是松耦合的。每個微服務僅關注於完成一件任務並很好地完成該任務。在所有情況下,每個任務代表著一個小的業務能力。

優點:每一個服務足夠內聚,足夠的小,所以代碼容易理解,這樣能夠聚焦一個指定的業務功能或業務需求。它開發簡單,開發效率也提高,一個服務可能就是專一的只幹一件事情。微服務是松耦合的,是有功能意義的服務,無論是在開發階段或部署階段都是獨立的,微服務能夠被小團隊單獨開發, 也能使用不同的語言開發。


微服務易於第三方集成,微服務允許容易且靈活的方式集成自動部署,通過持續集成工具,如Jenkins、Hudson等。微服務容易被一個開發人員理解、修改和維護,這樣小團隊能夠更關注自己的工作成果。無需通過合作才能體現價值,它允許你利用融合最新技術, 只是業務邏輯的代碼,不會和HTML/CSS或其他界面組件混合,每個微服務都有自己的存儲能力,可以有自己的數據庫,也可以統一數據庫。

缺點:微服務將原來的函數式調用改為服務調用,不管是用rpc,還是http、rest方式,都是增大系統整體延遲。這個是再所難免的了,就需要我們將原來的串行編程改為併發編程甚至異步編程,所以增加了技術門檻。


微服務應用程序是一個分佈式系統,這帶來了複雜性,開發人員需要選擇並實現基於消息傳遞或RPC的進程間通信機制。此外呢,還必須編寫代碼來處理部分故障,因為請求的目的地可能很慢或不可用。


總的來說: 單一架構只適用於簡單、輕量級的應用程序。如果將其用於複雜的應用程序,那麼會是很痛苦的。微服務體系結構模式對於複雜的、不斷髮展的應用程序是更好的選擇,儘管它有缺點和實現方面的挑戰。


分享到:


相關文章: