微服務簡介

 

1.軟件架構的進化

  1. 什麼是軟件架構:有關軟件總體結構與組件的抽象描述,用於指導大型軟件系統各個方面的設計。是在軟件內容,通過綜合各類因素的考量,權衡,選擇特定的技術,將系統劃分紅不一樣部分,並使用這些部分相互分工,彼此協做,爲用戶提供須要的價值。
  2. 相關因素:業務需求,技術棧,成本,組織架構,可擴展性,可維護性。
  3. javaweb的進化之路:一層架構,MVC(ssh,ssm),dubbo
  4. 單體架構:功能,業務集中在一個發佈包裏,部署運行在同一個進程中。優點(易於開發,易於測試,易於部署,易於水平伸縮),劣勢(代碼膨脹,難以維護,構建成本大,持續交付週期長,新人上週週期長,創新困難,可擴展性差)

2.什麼是微服務

  1. 使用一套小服務來開發單個應用的方式,每一個服務運行在獨立的進程裏,通常採用輕量級的通信機制互聯,而且他們能夠經過自動化方式部署。
  2. 如何拆分最小服務單元(不是固定的量化,是一種設計思路)
  3. 微服務特徵:單一職責,輕量級通信,隔離性,業務數據獨立,技術多樣性。
  4. 微服務誕生背景:互聯網的快速發展,敏捷開發,精益方法,容器技術的成熟。

3.微服務架構圖

  1. 業務場景:登陸註冊,發送郵件或者短信,獲取課程列表
  2. 單體架構圖: 

     

  3.  微服務架構圖:java

         

4.微服務架構優點,劣勢

  1. 優點:獨立性,敏捷性,技術棧靈活,高效團隊。
  2. 劣勢:額外的工做,數據一致性,溝通成本。

5.微服務間如何通信

  1. 通信模式:

     

  2. 通信協議:REST API,RPC(IO/線程調用模型,序列化方式,多語言支持,服務治理(dubbo,dubbox,thrift,motan,grpc)),MQ
  3. 流行的RPC框架對比
  4.  

6.微服務發現

  1. 傳統服務「發現」

     

     

  2. 微服務發現(客戶端發現) 
  3. 微服務發現(服務器端發現)

     

7.微服務部署,更新,擴容

  1.  服務編排:mesos,docker swarm,kubernetesweb

相關文章
相關標籤/搜索