微服務基礎概念及相關技術組件


  基礎概念:

  微服務架構的風格,就是將單一程序開發成一個微服務,每個微服務運行在自己的進程中,並使用輕量級機制通信,通常是 HTTP RESTFUL API 。這些服務圍繞業務能力來划分構建的,並通過完全自動化部署機制來

獨立部署 這些服務可以使用不同的編程語言,以及不同數據存儲技術,以保證最低限度的集中式管理。

  特點:

  1.微服務單元按業務來划分(將一個個小的功能模塊划分成一個個服務,每個服務采用的開發語言、持久層技術都可以不相同

  2.微服務通過 HTTP 來互相通信(restTemplate、微服務中的每個服務都是生產者和消費者、服務和服務之間通過resultful來調用)

  3.微服務的數據庫獨立(每個服務對應一個單獨的數據庫,互不關聯)

  4.微服務的自動化部署(通過docker技術來部署微服務)

  5.服務集中化管理(微服務需要一個服務管理中心來管理服務,通過服務注冊、服務發現、服務調用來實現業務功能)

  6.分布式架構

  7.熔斷機制(當某個服務失效時,熔斷機制會判斷這個服務是否失效、如果失效,則不處理該服務的業務邏輯功能、直接返回異常json信息,但是在斷開一段時間后會有一個半打開狀態,測試部分接口是否可以走通,如果可以走通 說明服務恢復正常,關閉熔斷器。如果不能走通則繼續開啟熔斷器)

  

  世界上沒有沒有缺點的技術,下面是微服務的一些缺點:

  1.微服務的復雜度(微服務跟一般單體服務相比較要復雜的多)

  2.微服務中采用分布式事務(兩個服務相關聯,事務的一致性)

  3.服務的划分(功能難以划分)

  4.服務的部署(部署的難度較高,一般使用docker自動化部署項目)

  

  微服務技術方案:

  Spring Cloud Config :服務配置中心,將所有的服務的配置文件放到本地倉庫或者遠程倉庫,配置中心負責讀取倉庫的配置文件,其他服務向配置中心讀取配置。 SpringCloud Config 使得服務的配置統一管理 並可以在不人為重啟服務的情況下進行配置文件的刷新。

  Spring Cloud Netflix :它是通過包裝了 Netflix 公司的微服務組件實現的,也是SpringCloud 核心的核心組件,包括 Eureka Hystrix Zuul Archaius 等。

   Eureka :服務注冊和發現組件

   Hystrix :熔斷器組件 Hystrix 通過控制服務的 API 接口的熔斷來轉移故障,防止微服務系統發生雪崩效應。另外, Hystrix 能夠起到服務限流和服務降級的作用。使用Hystrix Dashboard 組件監控單個服務的熔斷器的狀態,使用 Turbine 組件可以聚合多

個服務的熔斷器的狀態

  Zuul 能路由網關組 Netflix Zuul能夠起到智能路由和請求過濾的作用,是服務接口統一暴露 關鍵模塊,也是安全驗證、權限控制的一道門。

  Feign 聲明式遠程調度組件

  Ribbon 負載均衡組件。

  Archaius :配置管理 API 的組件, 一個基於 Java 的配置管理庫主要用於多配置的動態獲取。  Spring Cloud Bus 消息總線組件,常和 Spring Cloud Config 配合使用,用於動態新服務的配置。

  Spring Cloud Sleuth :服務鏈路追蹤組件,封裝了 Dapper Zipkin, Kibina 等組件,可以實時監控服務的鏈路調用情況。

  Spring Cloud Data Flow :大數據操作組件, Spring Cloud Data Flow SpringXD替代品,也是 個混合計算的模型,可以通過命令行的方式操作數據流

  Spring Cloud Security 安全模塊組件,是對 Spring Security 封裝,通常配合 0Auth2使用來保護微服務系統的安全。

  Spring Cloud Consule :該組件是 Spring Cloud Consul 的封裝,和 ureka 類似,它是一個服務注冊和發現組件

  Spring Cloud Zookeeper 該組件是 Spring Cloud Zookeeper 封裝,和 Eureka Consul相似,用於服務的注冊和發現

  Spring Cloud Stream :數據流操作組件,可以封裝 Redis RabbitMQ Kafka 等組件實現發送和接收消息等。

  Spring Cloud CLI :該組件是 Spring Cloud Spring Boot CLI 的封裝,可以讓用戶以命令行方式快速運行和搭建容器

  Spring Cloud Task 該組件基於 Spring Task ,提供了任務調度和任務管理的功能。 

  Spring Cloud Connectors 用於 Paas 雲平台連接到后端。

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM