1. 程式人生 > >何為微服務?

何為微服務?

微服務

什麽是微服務?
    微服務是一種架構風格,一種軟件架構,是由多個服務組成的集合體,集合體中的每個服務都是獨立存在,都可以獨立部署。
    各個服務之間是送耦合的,各個服務通過通信機制進行通信。
    每個服務都只關註一個業務功能,完成自己的業務任務即可。如:訂單服務,用戶服務。

  • 優點
    開發、維護相對簡單:微服務單個服務相當於一個項目,只需要關心這個模塊的業務邏輯即可。代碼量、代碼復雜度都會降低,易於開發、維護。
    技術棧靈活:各個服務可用不同的技術來實現,訂單服務用java實現,用戶服務用python實現。
    服務獨立解耦:微服務是高內聚的,每個服務處理每個服務相應的業務即可。每個微服務可獨立部署,不再需要協調其它服務對本服務的影響。

  • 缺點
    維護和部署復雜度的增加:單體應用可能只需要維護、部署一個項目即可,但是微服務是由多個服務構成,需要維護、部署多個服務,當微服務中某一個服務出現異常,想要確定是哪一個服務出現問題是不容易的,無法通過debug來確定問題。
    服務間通信的成本:單體應用只需要調用服務內接口即可。但是微服務之間,是需要服務與服務之間相互通信,通過RPC、MQ等來通信,那麽調用接口的成本明顯增加,提高了復雜度,引入許多問題,如:網絡延遲,消息序列化,容錯性等等。
    系統集成測試難度大:微服務測試,需要啟動這個服務所有相關的服務。

何為微服務?