最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java之SpringCloudAlibaba Sentinel組件案例講解

 更新時間:2021年07月28日 09:01:32   作者:小小張自由—>張有博  
這篇文章主要介紹了Java之SpringCloudAlibaba Sentinel組件案例講解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下

Sentinel 是什么

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

官網(wǎng):https://github.com/alibaba/Sentinel

中文官網(wǎng):https://github.com/alibaba/Sentinel/wiki

Sentinel與Hystrix的區(qū)別

由于Hystrix不再積極的開發(fā),進(jìn)入維護(hù)階段,現(xiàn)在越來越多的開發(fā)者在項目中使用Spring Cloud Alibaba Sentinel組件。

Hystrix的關(guān)注點在于以 隔離和熔斷為主的容錯機制,超時或被熔斷的調(diào)用將會快速失敗,并可以提供 fallback 機制。

Sentinel的側(cè)重點在于:多樣化的流量控制、熔斷降級,系統(tǒng)負(fù)載保護(hù),實時監(jiān)控和控制臺。

對比詳圖

 Sentinel的功能特點--摘自官方

Sentinel分為兩大部分:

核心庫(Java 客戶端)--自己的項目中的代碼。不依賴任何框架/庫,能夠運行于 Java 7 及以上的版本的運行時環(huán)境,同時對 Dubbo / Spring Cloud 等框架也有較好的支持。

控制臺(Dashboard)--控制臺主要負(fù)責(zé)管理推送規(guī)則、監(jiān)控、集群限流分配管理、機器發(fā)現(xiàn)等。

一、控制臺(Dashboard)

1、下載sentienl的jar包,本例使用:sentinel-dashboard-1.7.2.jar,地址:https://github.com/alibaba/Sentinel/releases

2、使用java -jar命令啟動Sentinel控制臺

啟動 Sentinel 控制臺需要 JDK 版本為 1.8 及以上版本。

3、訪問地址:http://localhost:8080/,8080為Sentinel的默認(rèn)端口   默認(rèn)賬號密碼為sentinel 

二、搭建客戶端

1.在自己的項目中引入依賴

<!---sentinel的依賴-->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
    <version>2.2.1.RELEASE</version>
</dependency>

2.編輯項目中的 application.yml或者bootstrap.yml文件

添加Sentinel 控制臺配置信息

spring:
   cloud:
       sentinel:
          transport:
            port: 8719  # 應(yīng)用與Sentinel控制臺交互的端口,應(yīng)用本地會起一個該端口占用的HttpServer # 默認(rèn)8719端口,假如端口被占用,依次+1,直到找到未被占用端口
            dashboard: localhost:8080 #sentinel控制臺的請求地址,需要啟動一個dashboard的jar

 3.資源是 Sentinel 中的一個關(guān)鍵概念。它可以是任何東西,例如服務(wù)、方法,甚至是代碼片段。

一旦被 Sentinel API 包裹,就被定義為資源,可以申請 Sentinel 提供的保護(hù)。

把需要控制流量的代碼用 Sentinel的關(guān)鍵代碼 SphU.entry("資源名") 和 entry.exit() 包圍起來即可。

實例代碼--摘自官方

    Entry entry = null;
    try {
        // 定義一個sentinel保護(hù)的資源,名稱為test-sentinel-api
        entry = SphU.entry(resourceName);
        // 模擬執(zhí)行被保護(hù)的業(yè)務(wù)邏輯耗時
        Thread.sleep(100);
        return a;
    } catch (BlockException e) {
        // 如果被保護(hù)的資源被限流或者降級了,就會拋出BlockException
        log.warn("資源被限流或降級了", e);
        return "資源被限流或降級了";
    } catch (InterruptedException e) {
        return "發(fā)生InterruptedException";
    } finally {
        if (entry != null) {
            entry.exit();
        }
 
        ContextUtil.exit();
    }
}

使用注解@SentinelResource 用于定義資源,并提供可選的異常處理和 fallback 配置項

value:資源名稱,必需項(不能為空)

entryType:entry 類型,可選項(默認(rèn)為 EntryType.OUT)

blockHandler / blockHandlerClass: blockHandler 對應(yīng)處理 BlockException 的函數(shù)名稱,可選項

fallback:fallback 函數(shù)名稱,可選項,用于在拋出異常的時候提供 fallback 處理邏輯。

在項目中Controller中添加@SentinelResource(value = "Sentinel-name")

例如:

 啟動項目

三、查看接口的流量的詳情

1.實時監(jiān)控

2.簇點鏈路

3.等等:其他使用方法有待發(fā)掘 

補充:

1.QPS:每秒請求數(shù),當(dāng)前調(diào)用該api的QPS到達(dá)閾值的時候進(jìn)行限流

2.線程數(shù):當(dāng)調(diào)用該api的線程數(shù)到達(dá)閾值的時候,進(jìn)行限流

3.直接:當(dāng)api大達(dá)到限流條件時,直接限流4

4.關(guān)聯(lián):當(dāng)關(guān)聯(lián)的資源到達(dá)閾值,就限流自己

5.鏈路:只記錄指定路上的流量,指定資源從入口資源進(jìn)來的流量,如果達(dá)到閾值,就進(jìn)行限流,api級別的限流

6.熱點規(guī)則即經(jīng)常訪問的數(shù)據(jù)。很多時候我們希望統(tǒng)計某個熱點數(shù)據(jù)中訪問頻次最高的 Top K 數(shù)據(jù),并對其訪問進(jìn)行限制。

7.響應(yīng)時間是指系統(tǒng)對請求作出響應(yīng)的時間。

8.吞吐量是指系統(tǒng)在單位時間內(nèi)處理請求的數(shù)量。

到此這篇關(guān)于Java之SpringCloudAlibaba Sentinel組件案例講解的文章就介紹到這了,更多相關(guān)Java之Sentinel組件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 搭建Springboot框架并添加JPA和Gradle組件的方法

    搭建Springboot框架并添加JPA和Gradle組件的方法

    這篇文章主要介紹了搭建Springboot框架并添加JPA和Gradle組件的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • SpringMVC參數(shù)的傳遞之如何接收List數(shù)組類型的數(shù)據(jù)

    SpringMVC參數(shù)的傳遞之如何接收List數(shù)組類型的數(shù)據(jù)

    這篇文章主要介紹了SpringMVC參數(shù)的傳遞之如何接收List數(shù)組類型的數(shù)據(jù),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Java?實戰(zhàn)項目之學(xué)生信息管理系統(tǒng)的實現(xiàn)流程

    Java?實戰(zhàn)項目之學(xué)生信息管理系統(tǒng)的實現(xiàn)流程

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+SSM+jsp+mysql+maven實現(xiàn)學(xué)生信息管理系統(tǒng),大家可以在過程中查缺補漏,提升水平
    2021-11-11
  • Java如何使用Jetty實現(xiàn)嵌入式的Servlet容器

    Java如何使用Jetty實現(xiàn)嵌入式的Servlet容器

    這篇文章主要介紹了Java使用Jetty實現(xiàn)嵌入式的Servlet容器,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,下面我們來一起了解一下吧
    2019-06-06
  • springboot訪問后端靜態(tài)資源404問題

    springboot訪問后端靜態(tài)資源404問題

    文章主要介紹了在Spring?Boot中訪問后臺靜態(tài)資源時可能出現(xiàn)的404錯誤及解決方法,并解釋了MyBatis中駝峰命名轉(zhuǎn)下劃線的默認(rèn)行為以及如何使用@Id和@GeneratedValue注解來標(biāo)識主鍵屬性
    2024-12-12
  • Spring Boot集成Swagger2項目實戰(zhàn)

    Spring Boot集成Swagger2項目實戰(zhàn)

    在日常的工作中,我們往往需要給前端(WEB端、IOS、Android)或者第三方提供接口,這個時候我們就需要給他們提供一份詳細(xì)的API說明文檔。這篇文章我們就來分享一種API文檔維護(hù)的方式,即通過Swagger來自動生成Restuful API文檔
    2018-01-01
  • java 獲取當(dāng)前路徑下的所有xml文檔的方法

    java 獲取當(dāng)前路徑下的所有xml文檔的方法

    這篇文章主要介紹了java如何獲取當(dāng)前路徑下的所有xml文檔,需要的朋友可以參考下
    2014-05-05
  • 公共POI導(dǎo)出Excel方法詳解

    公共POI導(dǎo)出Excel方法詳解

    這篇文章主要介紹了公共POI導(dǎo)出Excel方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • Java連接Vmware中的redis

    Java連接Vmware中的redis

    這篇文章主要為大家介紹了Java連接Vmware中的redis
    2016-01-01
  • Jenkins如何使用DockerFile自動部署Java項目

    Jenkins如何使用DockerFile自動部署Java項目

    這篇文章主要介紹了Jenkins如何使用DockerFile自動部署Java項目,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-08-08

最新評論

涟水县| 西乌| 惠州市| 平泉县| 当雄县| 镇沅| 澄江县| 旺苍县| 延庆县| 重庆市| 康平县| 汝阳县| 宿迁市| 武宣县| 新丰县| 武山县| 灵宝市| 浏阳市| 赫章县| 肃宁县| 涞源县| 榆树市| 兴安盟| 慈利县| 鄂州市| 泰州市| 张掖市| 简阳市| 平邑县| 诸暨市| 东城区| 高邑县| 邛崃市| 丽江市| 寿阳县| 彭阳县| 太湖县| 鄯善县| 蚌埠市| 澄城县| 青岛市|