日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

并发编程-26 高并发处理手段之服务降级与服务熔断 + 数据库切库分库分表

發布時間:2025/3/21 数据库 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 并发编程-26 高并发处理手段之服务降级与服务熔断 + 数据库切库分库分表 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

  • 服務降級與服務熔斷概述
    • 服務降級舉例
    • 服務熔斷 VS 服務降級
    • 服務降級要考慮的問題
    • Hystrix
  • 數據庫切庫分庫分表
  • 高可用的一些手段

服務降級與服務熔斷概述

服務熔斷: 一般是指軟件系統中,由于某些原因使得服務出現了過載現象,為防止造成整個系統故障,從而采用的一種保護措施,熔斷也可以稱為過載保護

服務降級: 當服務壓力劇增的時候根據當前的業務情況及流量對一些服務和頁面有策略的降級,以此緩解服務器的壓力,以保證核心任務的進行。同時保證部分甚至大部分任務客戶能得到正確的響應。也就是當前的請求處理不了了或者出錯了,給一個默認的返回。


服務降級舉例

  • 超時降級:主要配置好超時時間和超時重試次數和機制,并使用異步機制探測回復情況

  • 失敗次數降級:主要是一些不穩定的api,當失敗調用次數達到一定閥值自動降級,同樣要使用異步機制探測回復情況

  • 故障降級:比如要調用的遠程服務掛掉了(網絡故障、DNS故障、http服務返回錯誤的狀態碼、rpc服務拋出異常),則可以直接降級。降級后的處理方案有:默認值(比如庫存服務掛了,返回默認現貨)、兜底數據(比如廣告掛了,返回提前準備好的一些靜態頁面)、緩存(之前暫存的一些緩存數據)

  • 限流降級: 比如當秒殺或者搶購一些限購商品時,此時可能會因為訪問量太大而導致系統崩潰,此時我們會使用限流來進行限制訪問量,當達到限流閥值,后續請求會被降級;降級后的處理方案可以是:排隊頁面(將用戶導流到排隊頁面等一會重試)、無貨(直接告知用戶沒貨了)、錯誤頁(如活動太火爆了,稍后重試)等等


服務熔斷 VS 服務降級

兩者其實從某些角度看是有一定的類似性的:

  • 目的很一致,都是從可用性可靠性著想,為防止系統的整體緩慢甚至崩潰,采用的技術手段

  • 最終表現類似,對于兩者來說,最終讓用戶體驗到的是某些功能暫時不可達或不可用

  • 粒度一般都是服務級別,當然,業界也有不少更細粒度的做法,比如做到數據持久層(允許查詢,不允許增刪改)

  • 自治性要求很高,熔斷模式一般都是服務基于策略的自動觸發,降級雖說可人工干預,但在微服務架構下,完全靠人顯然不可能,開關預置、配置中心都是必要手段;

而兩者的區別也是明顯的:

  • 觸發原因不太一樣,服務熔斷一般是某個服務(下游服務)故障引起,而服務降級一般是從整體負荷考慮

  • 管理目標的層次不太一樣,熔斷其實是一個框架級的處理,每個微服務都需要(無層級之分),而降級一般需要對業務有層級之分(比如降級一般是從最外圍服務開始)

  • 實現方式不太一樣


服務降級要考慮的問題

  • 核心和非核心服務

  • 是否支持降級,降級策略

  • 業務放通的場景,策略


Hystrix

具備擁有回退機制和斷路器功能的線程和信號隔離,請求緩存和請求打包(request collapsing),以及監控和配置等功能

如何使用,請參考以前的博文

Spring Cloud【Finchley】-08使用Hystrix實現容錯

Spring Cloud【Finchley】-09Feign使用Hystrix

Spring Cloud【Finchley】-10Hystrix監控

Spring Cloud【Finchley】-11Feign項目整合Hystrix監控

Spring Cloud【Finchley】-12使用Hystrix Dashboard實現Hystrix數據的可視化監控


數據庫切庫分庫分表

數據庫的瓶頸:

  • 單個數據庫數據量太大(1-2T): 對應的策略—>拆分為多個庫

  • 單個數據庫服務器壓力太大,讀寫瓶頸:對應的策略—>拆分為多個庫

  • 單個表數據量過大:對應的策略—>分表

切庫的基礎:讀寫分離 ( 主庫/從庫)

自定義注解完成數據庫切庫:見以前的博文

Spring Boot2.x-09 基于Spring Boot 2.1.2 + Mybatis使用自定義注解實現數據庫切換

Spring Boot2.x-10 基于Spring Boot 2.1.2 + Mybatis 2.0.0實現多數據源,支持事務


高可用的一些手段

任務調度系統分布式: elastic-job + zookeeper , 請參考 elastic-job+zookeeper實現分布式定時任務調度的使用(springboot版本)

主備切換: apache curator + zookeeper 分布式鎖實現 ,請參考 ZooKeeper + Curator 實現分布式鎖

總結

以上是生活随笔為你收集整理的并发编程-26 高并发处理手段之服务降级与服务熔断 + 数据库切库分库分表的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。