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

CLB、ALB、微服務等如何做到上下線的時候流量無損?

本文介紹在使用SAE時,如何解決上下線流量有損的問題。

說明

阿里云負載均衡SLB(Server Load Balancer)支持傳統型負載均衡CLB(Classic Load Balancer)應用型負載均衡ALB(Application Load Balancer)。更多信息,請參見負載均衡SLB產品家族介紹

問題現象

在使用SAE過程中,CLB、ALB、微服務等上下線時流量有損。

問題原因

應用配置問題或客戶端沒有及時刷新服務列表的緩存。

解決方案

SAE單個實例視角的下線過程過長的步驟如下(同K8s):

  1. 實例進入Terminating狀態。

  2. 如果該實例關聯SLB、K8s Service等,并配置Readiness,則會將該實例摘除。關于應用業務就緒檢查(Readiness)的更多信息,請參見設置健康檢查

  3. 如果該實例配置PreStop,則會開始執行;PreStop執行完畢后,如果沒有超過TerminationGracePeriodSeconds,則會向該實例的1號進程發送SIGTERM信號。關于PreStop的更多信息,請參見設置應用生命周期管理

  4. 在步驟3的PreStop或SIGTERM信號中,執行清理或者等待操作,平臺會等待一段時間(即TerminationGracePeriodSeconds,默認值為30秒)。關于TerminationGracePeriodSeconds的更多信息,請參見設置應用生命周期管理

  5. 若超過TerminationGracePeriodSeconds進程還未結束,則發送SIGKILL信號,強制結束實例。

您可以基于以上步驟測試單個實例的下線過程。只要您的程序不是收到SIGTERM就馬上退出,基本都能實現流量的優雅下線。但是,如果您的程序收到SIGTERM信號就馬上退出,您需要處理SIGTERM信號或者配置PreStop。同時,您也可以根據實際情況,調大TerminationGracePeriodSeconds。

針對微服務應用,因為微服務客戶端會緩存一些服務端信息,導致調用到已經下線的實例,所以需要服務端在客戶端緩存過期前,進行等待。

  • (推薦)配置SAE無損下線功能。如何實現一鍵配置的具體操作,請參見設置微服務無損下線

  • 自行配置PreStop或者處理SIGTERM信號。參見上述步驟,在該方法內實現從注冊中心摘除實例并且等待一段時間的邏輯(例如30~60秒)。

在發布滾動更新的過程中,假設當前是1個實例,重新部署時,為了滿足最小存活實例數,SAE會確保先拉起一個新的實例,再銷毀老的實例,不會出現流量有損的問題。因為,SAE多實例的輪轉會確保實例整體滿足“最小存活實例數”的配置,該值默認為1,可以在部署應用時修改。更多信息,請參見單批發布應用