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的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sentinel(一)之简介
- 下一篇: 电脑快捷键大全电脑快捷键大全表格