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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

Sentinel(二)之Quick Start

發布時間:2023/12/3 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sentinel(二)之Quick Start 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉載自?Sentinel Quick Start

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.8.0</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 包圍起來(埋點)。參考代碼如下:

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();}}} }

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

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);// Set limit QPS to 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 控制臺文檔?啟動控制臺,可以實時監控各個資源的運行情況,并且可以實時地修改限流規則。

詳細文檔

請移步?Wiki,查閱詳細的文檔、示例以及使用說明。若您希望從其它熔斷降級組件(如 Hystrix)遷移或進行功能對比,可以參考?遷移指南。

Please refer to?README?for README in English。

與 Sentinel 相關的生態(包括社區用戶實現的擴展、整合、示例以及文章)可以參見?Awesome Sentinel,歡迎補充!

如果您正在使用 Sentinel,歡迎在?Wanted: Who is using Sentinel?留言告訴我們您的使用場景,以便我們更好地去改進。

總結

以上是生活随笔為你收集整理的Sentinel(二)之Quick Start的全部內容,希望文章能夠幫你解決所遇到的問題。

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