日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

無損下線Spring Cloud應(yīng)用

對于任何一個線上應(yīng)用,重啟、下線等操作不可避免,無損下線能夠?qū)崿F(xiàn)服務(wù)消費者無感知,保持業(yè)務(wù)連續(xù)無損。您無需對應(yīng)用進行任何配置、也無需在EDAS控制臺進行任何操作,EDAS默認(rèn)支持Spring Cloud應(yīng)用無損下線。

為什么需要無損下線

無損下線是為了保證從應(yīng)用停止到恢復(fù)服務(wù)期間不影響正常運行的消費者的業(yè)務(wù)請求。理想條件下,在整個服務(wù)沒有請求時再進行更新是安全可靠的。但實際情況下,無法保證在服務(wù)下線的同時沒有任何調(diào)用請求。

傳統(tǒng)的解決方式是通過將應(yīng)用更新流程劃分為手工摘除流量、停應(yīng)用、更新重啟三個步驟,由人工操作實現(xiàn)客戶端對更新無感知。

如果在容器或框架級別提供某種自動化機制,自動進行摘除流量并確保處理完已到達(dá)的請求,不僅能保證業(yè)務(wù)不受更新影響,還可以極大地提升更新應(yīng)用時的運維效率。該機制就是無損下線。

EDAS無損下線的優(yōu)勢

開源Spring Cloud可以通過shutdownHook、Spring Boot Actuator和Ribbon實現(xiàn),不僅有一定的開發(fā)工作量,而且部分注冊中心會導(dǎo)致短暫的流量損失。

EDAS將無損下線的流程整合在發(fā)布流程中,對應(yīng)用進行停止、部署、回滾、縮容、重置等操作時,無損下線會自動執(zhí)行。相對于開源的方案,EDAS無損下線具有以下優(yōu)勢:

分類

開源Spring Cloud

EDAS

版本

使用ServiceRegistryEndpoint,需要依賴Actuator組件,且需要升級到適配的版本。

無需任何操作,無侵入地支持Spring Cloud Dalston及以上版本。

注冊中心和流量損失

依賴注冊中心,有些注冊中心會導(dǎo)致流量損失。

  • ZooKeeper不存在流量損失。

  • Eureka存在3s流量損失。

  • Nacos存在客戶端緩存,會造成最長10s的流量損失。

無需依賴任何注冊中心,對于任何注冊均不存在流量損失。

場景

  • ECS場景需結(jié)合變更詳情。

  • K8s場景可以配合prestop接口,但是prestop接口只能配置一個動作。

ECS和K8s全部覆蓋,且不影響對應(yīng)用的任何操作與配置。

客戶端緩存

需要權(quán)衡利弊配置合理的Ribbon緩存的刷新時間,過長會導(dǎo)致下線有流量損失,過短會影響性能。

增強Ribbon下線刷新機制,通過反應(yīng)式響應(yīng)方式主動刷新Ribbon緩存。您無需關(guān)心緩存刷新。

如何驗證無損下線是否生效

您可以直接根據(jù)實際業(yè)務(wù)驗證應(yīng)用的無損下線是否已經(jīng)生效。另外,EDAS也提供了兩個應(yīng)用Demo,您可以使用這兩個Demo在容器服務(wù)K8s集群中驗證EDAS的無損下線。

無損下線驗證流程如下:

  1. 下載應(yīng)用Demo(ProviderConsumer)。

  2. 將應(yīng)用Demo部署到容器服務(wù)K8s集群。

    其中,Provider的實例個數(shù)為2,Consumer的實例個數(shù)為1。部署的詳細(xì)操作步驟,請參見創(chuàng)建和部署應(yīng)用概述(K8s)。

    部署應(yīng)用
  3. 查看應(yīng)用調(diào)用現(xiàn)狀。

    1. 登錄部署Consumer的Pod,執(zhí)行以下命令不停地訪問服務(wù)端的服務(wù)。

      #!/usr/bin/env bash
      while true
      do
          echo `curl -s -XGET http://localhost:18091/user/rest`
      done
    2. 查看調(diào)用請求的響應(yīng)。

      正常調(diào)用結(jié)果

      從響應(yīng)中可以看到,Consumer隨機訪問Provider的兩個實例(IP為172.20.0.221和172.20.0.223)。

      重要

      調(diào)用請求的響應(yīng)窗口不要關(guān)閉,后續(xù)仍然會用到。

  4. 將Provider的實例縮容到1,模擬實例重啟的場景。詳情請參見應(yīng)用生命周期管理(K8s)。

  5. 再次查看調(diào)用請求的響應(yīng)結(jié)果,驗證無損下線。

    調(diào)用請求響應(yīng)-無損下線

    一直觀察客戶端請求情況,可以看到無損下線的情況,同時觀察客戶端日志,不存在任何相關(guān)問題,客戶端完全無感知。

    從響應(yīng)中可以看到,Consumer會固定訪問Provider剩余的一個實例(IP為172.20.0.221),而不會發(fā)生調(diào)用異常,避免影響Consumer。