當前位置:編程學習大全網 - 源碼下載 - 關於服務治理的壹點理解

關於服務治理的壹點理解

服務治理是隨著微服務壹起出現的。在遠古時代的單體服務,所有業務部署在壹個進程,***享相同的資源,包括機器、網絡等資源。所以業務之間通信或者交互簡單。但是微服務中的每個服務都有自己獨立的資源,服務之間交互就變得復雜多了。服務獨立了,問題也隨之而來。怎麽知道其他服務在哪(服務發現),能不能提供服務(註冊中心或者服務探活),資源如何調度(資源調度)、服務如何通信(流量治理)等等問題如何解決,服務治理應運而生。

我們在日常中想要管理或者解決壹些人或者事情,需要盡可能地了解對方,才能進行。所以想要服務治理,我們也要了解服務。但是需要了解哪些方面呢?

我們可以通過指標來了解服務狀態。指標可以分為兩種:基礎指標和業務指標。

基礎指標主要是壹些通用的指標。下面是壹些常見的基礎指標:

? 機器指標(cpu、內存、網絡)

? jvm metric

? pod metric

? 基礎組件指標(db metric、redis metric等)

業務指標是指和業務相關的指標。這些指標反映了業務的狀態。比如業務處理延遲、速度等。

我們在管理服務時需要知道服務需要哪些資源,需要多少。這樣我們才能給服務分配資源。資源調度的前提是:我們知道還剩多少資源。所以我們需要基礎指標。只有基礎指標健全,我們才能獲得剩余資源的信息,才能進行資源調度。目前資源調度壹般都是用k8s來管理。

服務正常運行需要其依賴的服務正常運行。所以我們需要知道服務的依賴關系,調用鏈情況。通過調用鏈我們可以知道依賴關系,業務瓶頸在哪,哪些業務是關鍵業務,需要擴縮容。

常見的調用鏈中間:jeager、skywalking、zipkin。在選型時,優先考慮業務入侵小的方案,例如Java 字節碼技術。

隨著服務數量的增加,管理的難度也隨之劇增。所以我們需要搭建基礎設施來輔助管理。

k8s 是目前最火的服務編排系統,我們也就在贅述了。

配置中心是為服務提供配置的,我們可以通過配置中心對服務進行管理,比如業務使用哪套算法模型,業務出現線程數量等。常見的配置中心有:zookeeper、consul、Nacos、apollo、spring cloud config。

zookeeper和consul 只具有簡單的配置中心功能,相當於nosql db。在服務體量不大,服務治理場景簡單的時候可以使用。但是對於復雜或者高級的服務治理場景還是捉襟見肘。比如灰度發布。

Nacos、apollo、spring cloud config 提供了配置中心高級功能:配置推送,配置刷新,配置隔離等。有如下場景的時優先從三者中選擇:

? 多環境(開發、測試、線上)

? 多租戶

? 灰度發布

? 資源隔離

註冊中心的本質是服務探活。註冊中心會對外提供可用服務地址查詢。比如gprc 可以使用註冊中心查詢存活實例,然後做負載均衡。在spring cloud 中的feign的負載均衡也都是基於註冊中心。

服務治理的最終目標就是實現自動化。但是自動化是建立在前面兩項之上的,擁有必要的數據我們才能自動化。

流量治理有兩種主要場景:激增大流量和灰度發布。激增大流量可以通過自動擴縮容解決,我們後面在說。

不同版本配置不同:這個問題需要使用配置中心解決。

不同版本流量不同:service mesh 可以解決這個問題。

要實現自動擴縮容,我們就需要知道哪些服務需要擴縮容。我們需要定義壹系列指標,用於衡量服務。

負載負載情況:我們可以監控pod cpu 情況;api 調用時長P99情況;api 調用頻率情況。

流量情況:api 調用數量;網絡情況。

通過各種指標我們可以知道服務狀態,從而我們可以指定擴縮容規則。

上面提到的每項技術都能展開講很久,之後的文章我們在詳細聊聊。

  • 上一篇:會計穩健型怎麽建模
  • 下一篇:如何在eclipse中應用高科技演示?
  • copyright 2024編程學習大全網