天天看點

微服務雲應用開發技術前瞻

微服務體系結構簡介

  • API Gateway(Api 網關)
    • 為體系(或子系統)提供統一的通路入口
    • 在統一通路的基礎上,能夠實作
      • 通路的認證與授權(政策控制)
      • 動态路由
      • 服務遷移
      • 負載均衡
      • 限流、降級等反向代理
      • 測試規劃
        • 壓力測試
        • 金絲雀測試(灰階測試)
微服務雲應用開發技術前瞻

服務注冊中心(Service Register Server)

  • 所有微服務都會注冊在中心
  • 注冊中心提供功能(伺服器端)
    • 服務注冊
    • 服務下線
    • 服務續約
    • 剔除失效服務
  • 用戶端
    • 服務擷取
    • 服務調用
    • 容錯

大緻可歸為三類:

  • 應用内:直接內建到應用中,依賴于應用自身完成服務的注冊與發現,最典型的是Netflix提供的Eureka
  • 應用外:把應用當成黑盒,通過應用外的某種機制将服務注冊到注冊中心,最小化對應用的侵入性,比如Airbnb的SmartStack,HashiCorp的Consul
  • DNS:将服務注冊為DNS的SRV記錄,嚴格來說,是一種特殊的應用外注冊方式,SkyDNS是其中的代表
微服務雲應用開發技術前瞻

配置管理中心(Configuration Server)

  • 分布式配置管理中心
    • 每個服務都有可能包含不同類型的配置
      • 開發環境、測試環境和生産環境
  • 提供的常用功能
    • 提供統一、集中配置管理
      • 配置一緻性
    • 不同環境提供不同配置
      • 開發、測試和生産
    • 運作期間的動态配置更新
    • 配置版本管理(復原)
微服務雲應用開發技術前瞻

授權與認證服務(政策控制)

  • 通常是身份認證與安全控制
  • 服務提供的功能
    • 安全、簡單和開放
    • 服務無狀态
    • 能跨語言、跨服務(甚至跨域)調用傳遞
    • 具有足夠性能
    • OAuth2/JWT
      • JWT: JSON Web Token
  • 斷路器與容錯機制
    • 分布式系統中不可避免失敗,是以需要建立一種有效的防禦機制來避免和隔離失敗
    • 斷路器或容錯機制需要面對:
      • 隔離:線程隔離,信号量隔離。避免個别服務故障擴大。
      • 熔斷:當失敗率達某門檻值時,觸發快速失敗
      • 降級:逾時降級、熔斷降級,可以使用回調傳回保底資料
      • 緩存:請求緩存、請求合并
      • 實時監控與報警
  • 分布式服務追蹤與日志整合
    • 根據服務的劃分,帶來就是一個業務會由多個服務協作完成,形成調用鍊。
    • 我們需要追蹤和監控這些鍊路,最終掌握服務的工作品質
      • 每個調用的實時資料收集
      • 資料存儲
      • 資料分析與展示
微服務雲應用開發技術前瞻

消息總線與消息驅動

  • EDA:事件驅動架構,本身就是一個應用廣泛的設計與開發思想。消息釋出者隻關注消息的釋出,而消費者隻關注自己感興趣的消息。
  • EDA 帶來的好處:
    • 低耦合
    • 持久性
    • 高可擴充性
    • 高靈活性
微服務雲應用開發技術前瞻

運作環境平台管理

  • 使用 Docker 作為每個微服務的運作容器
  • 引入 Docker 管理平台
    • OpenShift Origin (RadHat)
      • 基于 Docker + Kubernetes
    • Kubernetes(CNCF)
微服務雲應用開發技術前瞻

其他内容

  • 資料存儲
    • MySQL
    • Splunk
    • ELK
    • Redis
  • 消息忠線
    • RabbitMQ/Kafka
  • DevOps
    • Jenkins --- 持續內建
    • Git --- 源代碼管理
    • Ansible --- 運維

雲應用開發架構

  • Spring Cloud 全家桶
    • 基礎:Spring Framework + Spring Boot
  • Dubbo (阿裡巴巴)
    • Spring Framework + zk
  • Vert.X (Eclipse 基金會)
    • 異步消息總線(自成系統)

 Spring Cloud 全家桶

  • Spring 家族
    • Spring Framework -- 基礎
    • Spring Boot -- 應用整合
      • 簡化配置
      • 大量應用整合
    • Spring Data 資料存取
    • Spring Cloud 雲應用整合
    • Spring Security -- 安全

Spring Cloud 全家桶

  • 提供完整微服務開發架構
  • API 網關
    • Spring Cloud Netflix Zuul
    • Spring Cloud Gateway
  • 服務注冊中心
    • Spring Cloud Netflix Eureka
    • Spring Cloud Consul
    • Spring Cloud ZooKeeper
  • 配置管理中心
    • Spring Cloud Config
  • 授權與認證服務
    • Spring Cloud Security
  • 斷路器與容錯處理
    • Spring Cloud Netflix Hystrix
  • 分布式服務追蹤與日志整合
    • Spring Cloud Sleuth
    • Spring Cloud Zipkin
  • 消息總線與消息驅動
    • Spring Cloud Stream
    • Spring Cloud Bus
  • 其他
    • 用戶端負載均衡:Spring Cloud Ribbon
    • REST 聲明式程式設計:Spring Cloud Feign

轉載于:https://www.cnblogs.com/RealWorld/p/9007060.html