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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

gateway sentinel 熔断 不起作用_《一起学sentinel》一

發布時間:2024/9/19 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 gateway sentinel 熔断 不起作用_《一起学sentinel》一 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

《一起學sentinel》一、一起搭建sentinel服務

一、概述

隨著微服務的流行,服務和服務之間的穩定性變得越來越重要。Sentinel 以流量為切入點,從流量控制、熔斷降級、系統負載保護等多個維度保護服務的穩定性。

Sentinel 具有以下特征(來自官網概述):

  • 豐富的應用場景:Sentinel 承接了阿里巴巴近 10 年的雙十一大促流量的核心場景,例如秒殺(即突發流量控制在系統容量可以承受的范圍)、消息削峰填谷、集群流量控制、實時熔斷下游不可用應用等。
  • 完備的實時監控:Sentinel 同時提供實時的監控功能。您可以在控制臺中看到接入應用的單臺機器秒級數據,甚至 500 臺以下規模的集群的匯總運行情況。
  • 廣泛的開源生態:Sentinel 提供開箱即用的與其它開源框架/庫的整合模塊,例如與 Spring Cloud、Dubbo、gRPC 的整合。您只需要引入相應的依賴并進行簡單的配置即可快速地接入 Sentinel。
  • 完善的 SPI 擴展點:Sentinel 提供簡單易用、完善的 SPI 擴展接口。您可以通過實現擴展接口來快速地定制邏輯。例如定制規則管理、適配動態數據源等。

Sentinel 的主要特性:

Sentinel 分為兩個部分:

  • 核心庫(Java 客戶端)不依賴任何框架/庫,能夠運行于所有 Java 運行時環境,同時對 Dubbo / Spring Cloud 等框架也有較好的支持。
  • 控制臺(Dashboard)基于 Spring Boot 開發,打包后可以直接運行,不需要額外的 Tomcat 等應用容器。

二、概念簡述

1.核心術語

  • Resource
    資源,特指需要限流的內容或對象
    • 具體實現為com.alibaba.csp.sentinel.slotchain.ResourceWrapper

//資源:
protected final String name;//資源名稱
?
protected final EntryType entryType;//是入口流量還是出口流量
?
protected final int resourceType;//資源控制類型
/**
public static final int COMMON = 0;
public static final int COMMON_WEB = 1;
public static final int COMMON_RPC = 2;
public static final int COMMON_API_GATEWAY = 3;
public static final int COMMON_DB_SQL = 4;
*/
//實例
//com.alibaba.csp.sentinel.slotchain.MethodResourceWrapper 方法資源包裝器
//com.alibaba.csp.sentinel.slotchain.StringResourceWrapper 字符串資源包裝器

  • context
    上下文,特指一個線程中的上下文,保存當前調用的元數據
    //包含以下元素
    ?
    Node //Entry的統計
    ?
    private final String name;//上下文名稱
    ?
    private DefaultNode entranceNode;//當前調用樹的跟節點
    ?
    private Entry curEntry;//當前調用節點
    ?
    private String origin = "";//作為調用者或者觸發點,分別控制不同的調用者或者觸發點
    ?
    private final boolean async;
  • entry
    入口,作為上下文中的鏈接項
    • 具體實現為com.alibaba.csp.sentinel.CtEntry

//鏈接上下鏈路
protected Entry parent = null;//父節點
protected Entry child = null;//子節點
protected ProcessorSlot<Object> chain;//核心插槽,后面會詳細講解
protected Context context;//鏈路上下文

  • node
    節點是用來保存某個資源的各種實時統計信息的,他是一個接口,通過訪問節點,就可以獲取到對應資源的實時狀態,以此為依據進行限流和降級操作
  • FlowRule
    • com.alibaba.csp.sentinel.slots.block.flow.FlowRule可以理解為限流規則
      grade //代表示流控制的閥值類型,比如QPS或線程數
      ?
      private int strategy = RuleConstant.STRATEGY_DIRECT;
      //調用關系的策略
      //STRATEGY_DIRECT 用于直接流量控制(by origin);
      //STRATEGY_RELATE 用于相關流量控制(with relevant resource);
      //STRATEGY_CHAIN 用于鏈式流量控制(by entrance resource).
      ?
      controlBehavior//表示QPS成形行為(當QPS超過閾值時對傳入請求的操作)。
      ?

三、快速入手

1.1 公網 Demo

如果希望最快的了解 Sentinel 在做什么,我們可以通過 Sentinel 新手指南 來運行一個例子,并且能在云上控制臺上看到最直觀的監控和流控效果等。

1.2 手動接入 Sentinel 以及控制臺

下面的例子將展示應用如何三步接入 Sentinel。同時,Sentinel 也提供所見即所得的控制臺,可以實時監控資源以及管理規則。

STEP 1. 在應用中引入Sentinel Jar包

如果應用使用 pom 工程,則在 pom.xml 文件中加入以下代碼即可:

<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-core</artifactId><version>1.7.2</version>(最新的穩定版本) </dependency>注意: 從 Sentinel 1.5.0 開始僅支持 JDK 1.7 或者以上版本。Sentinel 1.5.0 之前的版本最低支持 JDK 1.6。

如果您未使用依賴管理工具,請到 Maven Center Repository 直接下載 JAR 包。

STEP 2. 定義資源

接下來,我們把需要控制流量的代碼用 Sentinel API SphU.entry("HelloWorld") 和 entry.exit() 包圍起來即可。在下面的例子中,我們將 System.out.println("hello world"); 這端代碼作為資源,用 API 包圍起來(埋點)。參考代碼如下:

//第一種方式SphU.entry public static void main(String[] args) {initFlowRules();//(規則)while (true) {Entry entry = null;try {entry = SphU.entry("HelloWorld");/*您的業務邏輯 - 開始*/System.out.println("hello world");/*您的業務邏輯 - 結束*/} catch (BlockException e1) {/*流控邏輯處理 - 開始*/System.out.println("block!");/*流控邏輯處理 - 結束*/} finally {if (entry != null) {entry.exit();}}} } ? ? //第二種方式SphO.entry public static void main(String[] args) {initFlowRules();//(規則)while (true) {if (SphO.entry("HelloWorld")) {try {/*您的業務邏輯 - 開始*/System.out.println("hello world");/*您的業務邏輯 - 結束*/} finally {SphO.exit();}}else {/*流控邏輯處理 - 開始*/System.out.println("block!");/*流控邏輯處理 - 結束*/}} }
  • SphU.entry方式會拋出異常
    • 如果沒有異常執行正確邏輯
    • 如果出現異常執行限流和熔斷邏輯
  • SphO.entry返回的是一個boolean值
    • 如果true執行正確邏輯
    • 如果false執行限流和熔斷邏輯

完成以上兩步后,代碼端的改造就完成了。當然,也提供了 注解支持模塊,可以以低侵入性的方式定義資源。

STEP 3. 定義規則

接下來,通過規則來指定允許該資源通過的請求次數,例如下面的代碼定義了資源 HelloWorld 每秒最多只能通過 20 個請求。

private static void initFlowRules(){List<FlowRule> rules = new ArrayList<>();FlowRule rule = new FlowRule();rule.setResource("HelloWorld");rule.setGrade(RuleConstant.FLOW_GRADE_QPS);// 設置QPS限制為20。rule.setCount(20);rules.add(rule);FlowRuleManager.loadRules(rules); }

完成上面 3 步,Sentinel 就能夠正常工作了。更多的信息可以參考 使用文檔。

STEP 4. 檢查效果

Demo 運行之后,我們可以在日志 ~/logs/csp/${appName}-metrics.log.xxx 里看到下面的輸出:

|--timestamp-|------date time----|-resource-|p |block|s |e|rt 1529998904000|2018-06-26 15:41:44|HelloWorld|20|0 |20|0|0 1529998905000|2018-06-26 15:41:45|HelloWorld|20|5579 |20|0|728 1529998906000|2018-06-26 15:41:46|HelloWorld|20|15698|20|0|0 1529998907000|2018-06-26 15:41:47|HelloWorld|20|19262|20|0|0 1529998908000|2018-06-26 15:41:48|HelloWorld|20|19502|20|0|0 1529998909000|2018-06-26 15:41:49|HelloWorld|20|18386|20|0|0

其中 p 代表通過的請求, block 代表被阻止的請求, s 代表成功執行完成的請求個數, e 代表用戶自定義的異常, rt 代表平均響應時長。

可以看到,這個程序每秒穩定輸出 "hello world" 20 次,和規則中預先設定的閾值是一樣的。

更詳細的說明可以參考: 如何使用

更多的例子可以參考: Sentinel Examples

STEP 5. 啟動 Sentinel 控制臺

您可以參考 Sentinel 控制臺文檔 啟動控制臺,可以實時監控各個資源的運行情況,并且可以實時地修改限流規則。

總結

以上是生活随笔為你收集整理的gateway sentinel 熔断 不起作用_《一起学sentinel》一的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产精品ww | 午夜激情在线 | 国产精品爽 | 欧美 日韩 国产 中文 | 欧美黄色网络 | 青青草激情视频 | 亚洲av毛片一区二二区三三区 | 成人a在线观看 | 韩国美女一区 | 免费的一级片 | 波多野结衣视频一区 | 99reav| 新婚若妻侵犯中文字幕 | 国产毛片毛片毛片毛片毛片 | 欧美成人一区二区视频 | 天天爽夜夜爽夜夜爽精品 | 三级理伦| 欧美精品福利视频 | 性视频播放免费视频 | 日韩欧美一区二区一幕 | 91tv在线观看| 真人一毛片 | 成人网在线观看 | 亚洲成人免费影院 | 中文字幕欧美在线观看 | 欧美毛片网站 | 欧美日韩高清在线观看 | 日本打屁股网站 | 三级黄色免费网站 | 黄色小视频免费在线观看 | 精品国产va久久久久久久 | 久久国产精品免费视频 | 91视频污在线观看 | 午夜影院在线观看18 | 久久久久久久久久久久Av | 日本免费一区二区视频 | 亚洲精品五月 | 久久久久亚洲av无码专区体验 | 亚洲第一字幕 | 激情吧 | 成人午夜网址 | 日韩av在线电影 | 欧美日韩国产精品综合 | 91九色porn| 瑟瑟视频免费看 | 老色鬼在线 | 一本色道久久hezyo加勒比 | 亚洲一级片| 日韩免费观看一区二区三区 | 精品一区二区三区视频日产 | 九九夜| 999国产视频 | 成人福利网址 | 免费人成视频在线播放 | 超碰av在线播放 | 色小姐综合网 | 亚洲精品国产手机 | 玖玖999 | 狠狠爱综合 | 欧美日色| 日韩精品一区二区三区网站 | 国产一区在线播放 | 中文字幕精品久久久久人妻红杏1 | 日本成人一区 | 精品午夜久久久 | 在线观看日韩中文字幕 | 艳妇乳肉豪妇荡乳av | 91爱啪 | 六月色婷 | 三级网站在线看 | 做视频| 国产高清视频免费 | 国产牛牛| 久久久午夜精品 | 在线观看不卡av | 国产精品三级电影 | 97在线免费观看 | 久久在线中文字幕 | 性高潮视频在线观看 | 久久国产高清 | 日韩中文久久 | 欧美日韩国产片 | 丰满少妇被猛烈进入高清播放 | 国产成人无码a区在线观看视频 | 日日骚影院 | 在线播放a | 国产麻豆成人精品av | 美女超碰在线 | 男人的天堂a在线 | 成人在线观看视频网站 | 久久二| 99久久99久久久精品棕色圆 | 国产成人在线视频网站 | 97精品国产97久久久久久春色 | 激情另类小说 | 97人妻精品一区二区三区视频 | 99在线视频免费 | 中国一级免费毛片 | 在线中文字幕av |