Sentinel的安裝和做限流的使用

一、安裝

Release v1.8.3 · alibaba/Sentinel · GitHubA powerful flow control component enabling reliability, resilience and monitoring for microservices. (面向云原生微服務的高可用流控防護組件) - Release v1.8.3 · alibaba/Sentinelhttps://github.com/alibaba/Sentinel/releases/tag/1.8.3https://github.com/alibaba/Sentinel/releases/tag/1.8.3https://github.com/alibaba/Sentinel/releases/tag/1.8.3https://github.com/alibaba/Sentinel/releases/tag/1.8.3

打開網址,可以看到下面有一個1.8.3的版本

下載完之后放在自己指定的文件夾里

然后在上面輸入cmd打開cmd控制臺,進行啟動

java -Dserver.port=8888 -jar sentinel-dashboard-1.8.1.jar

這里的-Dserver.port=8888意味著設置了一個名為server.port的系統屬性,其值為8888。這個系統屬性通常被Java應用程序用來指定其運行時的服務器端口號。

二、客戶端訪問

瀏覽器訪問:

127.0.0.1:8888(ip+端口號,端口號為剛剛設置的8888)

密碼默認都是sentinel

輸入賬號和密碼之后

?看到這頁面說明安裝成功!

三、微服務整合sentinel

(1)引入依賴

<!--引入sentinel客戶端依賴-->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId><version>${spring-cloud-alibaba.version}</version>
</dependency>

(2)修改配置

server:port: 9090
spring:cloud:sentinel:transport:dashboard: 127.0.0.1:8888 #sentinel控制臺所在的ip和端口

(3)瀏覽器訪問

sentinel屬于懶加載模式,其核心思想是僅在需要時才加載資源。具體來說,在Sentinel中,懶加載模式意味著只有當一個資源(如API接口)被實際訪問時,Sentinel才會開始對該資源進行監控和限流等策略的配置。

所以我們得需要先訪問一下接口,才能加載進去

@RestController
@RequestMapping("/test")
public class UserController {//這邊為了做測試,就簡單的寫一個test接口@RequestMapping("/test1")public String test1(){return "test1";}//多添加一個hello的測試接口,下面會用到@RequestMapping("/hello")public String hello(){return "hello";}  
}

重啟服務器,在瀏覽器訪問一下我們剛剛寫的接口?

訪問成功之后,重新刷新一下sentinel

點擊打開就能看見相關信息

四、sentinel做限流

對資源進行設置限流規則

資源:ip,變量,參數, url==》一般用url做限流規則

1、如何做限流規則

新增完之后就可以看見新添的

這邊用jmeter進行壓力測試

可以看到,假設我們一秒鐘請求10個,則只有五個通過,因為我們上面進行限流,一秒鐘最多五個請求

這個就是直接模式

2、三種流控模式

直接,關聯,鏈路

(1)直接模式

剛剛用的就是直接的流控模式

(2)關聯模式(更多使用在同一個微服務)

這邊我們舉個例子來理解關聯模式

比如我們有一個訂單的微服務

訂單微服務 ==》資源訪問數100

--創建訂單 ==》它90

--查詢訂單 ==》它只能10

設置:流控模式換成關聯模式,新增一個hello的接口,來進行測試

?測試:

當它測試數據過多的時候,訪問跟它相關聯的/test/test1

(3)鏈路模式(更多使用在不同的微服務)

資源A可以訪問資源B A-》B

資源C也可以訪問B C-》B

舉例場景:

創建訂單===》調用商品

查詢訂單===》調用商品

這邊涉及到微服務之間的相互調用,則需要寫接口,修改配置

訂單調用商品,用戶調用商品,形成一個鏈路模式,然后就先寫一下不同微服務之間的調用,如果在不同的微服務下,訂單是個微服務,就要設置讓openfeign接受sentinel,就要修改配置(修改兩個),隨后運行項目,讓sentinel里面有對應的微服務的方法,并且設置限流模式為鏈路模式,進行限流,設置參數,然后就用jmeter進行壓力測試,使用json斷言來判斷,查看結果樹,看會不會影響到?,這邊就不做演示,思路大概是這樣子的

#修改配置
spring:cloud:sentinel:transport:dashboard: 127.0.0.1:8888 #sentinel控制臺所在的ip和端口web-context-unify: false #關閉,使得鏈路跟蹤不會受到影響feign:sentinel:enabled: true #讓openfeign支持sentinel

?五、拓展

(1)什么是sentinel,核心功能是什么?

Sentinel 是面向分布式系統的流量控制組件,核心功能包括流量控制、熔斷降級、系統自適應保護、實時監控等,目標是保障微服務的穩定性。

(2)Sentinel 和 Hystrix 的主要區別是什么?

Sentinel 更強調流量控制(QPS/并發量)和實時監控,支持動態規則配置;Hystrix 側重于熔斷和線程隔離,但已進入維護模式。Sentinel 的流量控制模型更靈活(如直接拒絕、Warm Up、勻速排隊)。

(3)為什么要使用sentinel?

流量控制:Sentinel可以進行限流操作,從而防止系統被過載壓垮。這對于保護系統在高并發場景下的穩定性至關重要。

熔斷降級:Sentinel通過熔斷機制,可以在檢測到某個服務出現不穩定表現時(如請求響應時間長或異常比例升高),自動對該服務的調用進行限制,讓請求快速失敗,從而避免影響到其他服務,保證系統的整體穩定性。

實時監控與報警:Sentinel提供了實時的監控功能,可以在控制臺中看到接入應用的單臺機器秒級數據,甚至500臺以下規模的集群的匯總運行情況。同時,根據預設的規則,Sentinel還可以對系統的異常情況進行實時報警,及時通知相關人員進行處理,避免問題擴大化。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/894894.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/894894.shtml
英文地址,請注明出處:http://en.pswp.cn/news/894894.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

“AI隱患識別系統,安全多了道“智能護盾”

家人們&#xff0c;在生活和工作里&#xff0c;咱們都知道安全那可是頭等大事。不管是走在馬路上&#xff0c;還是在工廠車間忙碌&#xff0c;又或是住在高樓大廈里&#xff0c;身邊都可能藏著一些安全隱患。以前&#xff0c;發現這些隱患大多靠咱們的眼睛和經驗&#xff0c;可…

《手札·避坑篇》信息化和數字化的本質區別

信息化與數字化&#xff1a;軸承貿易公司的轉型之路 在當今商業環境中&#xff0c;信息化和數字化是企業轉型的兩個熱門詞匯。但對于很多外行人來說&#xff0c;這兩個概念可能容易混淆。本文將從軸承貿易公司的角度&#xff0c;結合真實案例和數據&#xff0c;分析信息化與數字…

基于DeepSeek API和VSCode的自動化網頁生成流程

1.創建API key 訪問官網DeepSeek &#xff0c;點擊API開放平臺。 在開放平臺界面左側點擊API keys&#xff0c;進入API keys管理界面&#xff0c;點擊創建API key按鈕創建API key&#xff0c;名稱自定義。 2.下載并安裝配置編輯器VSCode 官網Visual Studio Code - Code Editing…

SolidWorks教程P2.2【草圖 | 第二節】——草圖幾何關系與編輯

草圖幾何關系包括&#xff1a;重合、中點、相切、平行、相等、共線、對稱 草圖編輯功能包括&#xff1a;裁剪實體、轉換實體引用、等距實體 目錄 1.草圖幾何關系 2.裁剪實體 3.轉換實體引用 4.等距實體 補充知識&#xff1a;智能尺寸 1.草圖幾何關系 在之前的草圖介紹里…

AI大模型訓練實戰:分布式與微調指南

AI大模型訓練實戰:分布式與微調指南 適用人群:有一定深度學習基礎,正在或即將參與大模型(如 GPT、DeepSeek 等)訓練與部署的工程師、研究者;想要理解分布式策略與微調方法的讀者。 一、大模型為何需要分布式與微調? 隨著 GPT、DeepSeek 等大模型參數規模攀升至數十億甚…

【夢想終會實現】Linux驅動學習5

加油加油堅持住&#xff01; 1、 Linux驅動模型&#xff1a;驅動模型即將各模型中共有的部分抽象成C結構體。Linux2.4版本前無驅動模型的概念&#xff0c;每個驅動寫的代碼因人而異&#xff0c;隨后為規范書寫方式&#xff0c;發明了驅動模型&#xff0c;即提取公共信息組成一…

WARNING(ORCAP-1589): Net has two or more aliases - possible short?

參考鏈接&#xff1a;ORCAD報錯ORCAP-1589-CSDN博客 現象&#xff1a; Capture CIS 使用PCB-DRC檢查原理圖&#xff0c;報錯Net has two or more aliases - possible short? 錯誤原因&#xff1a; 一個網絡有兩個網絡名稱。 問題本質&#xff1a; 原理圖管腳型號的設定問題…

nvm:node 版本管理器

一、先安裝git Git 安裝完成后執行 git --version查看版本號是否安裝成功 二、安裝nvm &#xff08;參考鏈接&#xff1a;mac 安裝nvm詳細教程 - 簡書&#xff09; 官網&#xff08;https://github.com/nvm-sh/nvm/blob/master/README.md&#xff09;查看最新版本安裝命令 …

動態規劃——路徑問題①

文章目錄 62. 不同路徑算法原理代碼實現 63. 不同路徑 II算法原理代碼實現 LCR 166. 珠寶的最高價值算法原理代碼實現 62. 不同路徑 題目鏈接&#xff1a;62. 不同路徑 算法原理 狀態表示&#xff1a; dp[i,j]&#xff1a;以[i, j]位置為結尾&#xff0c;走到[i, j]位置有多少…

NodeList 對象

NodeList 對象 概述 NodeList 對象是 DOM(文檔對象模型)中的一種特殊類型,它代表了文檔中一組元素的集合。NodeList 對象通常通過查詢 DOM 樹來獲取,例如使用 document.querySelectorAll() 方法。NodeList 對象在 JavaScript 中非常有用,因為它允許開發者以編程方式遍歷…

C++自研3D教程OPENGL版本---動態批處理的基本實現

又開始找工作了&#xff0c;借機休息出去旅行兩個月&#xff0c;順便利用這段時間整理下以前寫的東西。 以下是一個簡單的動態批處理實現&#xff1a; #include <GL/glew.h> #include <GLFW/glfw3.h> #include <iostream> #include <vector>// 頂點結…

61. Linux內核啟動流程簡介

一、vmlinux.lds簡介 從arch/arm/kernel/vmlinux.lds分析Linux內核第一行啟動代碼。找到ENTRY(stext) 入口函數是stext&#xff0c;image和zImage是經過壓縮的&#xff0c;Linux內核會先進行解壓縮&#xff0c;解壓縮完成以后就要運行Linux內核。要求&#xff1a; 1、MMU關閉 …

汽車智能座艙的技術演進與用戶體驗重構 —— 基于多模態交互與 AI 融合的范式創新

摘要&#xff1a; 汽車智能座艙作為人 - 車 - 環境交互的核心載體&#xff0c;正經歷從功能驅動到體驗驅動的范式變革。本文通過技術解構與用戶行為分析&#xff0c;深入揭示智能座艙在異構計算、多模態感知、服務生態等維度的創新路徑。研究表明&#xff0c;智能座艙的競爭焦…

使用 Let‘s Encrypt 和 OpenResty 實現域名轉發與 SSL 配置

在搭建網站或服務時&#xff0c;確保域名的安全性和正確的流量轉發是非常重要的。本文將介紹如何使用 Let’s Encrypt 獲取免費的 SSL 證書&#xff0c;并將其配置到 OpenResty 中&#xff0c;同時實現特定的域名轉發規則。這不僅可以提升網站的安全性&#xff0c;還能優化流量…

SpringBoot3整合Swagger3時出現Type javax.servlet.http.HttpServletRequest not present錯誤

目錄 錯誤詳情 錯誤原因 解決方法 引入依賴 修改配置信息 創建文件 訪問 錯誤詳情 錯誤原因 SpringBoot3和Swagger3版本不匹配 解決方法 使用springdoc替代springfox&#xff0c;具體步驟如下&#xff1a; 引入依賴 在pom.xml文件中添加如下依賴&#xff1a; <…

ChatGPT提問技巧:行業熱門應用提示詞案例-文案寫作

ChatGPT 作為強大的 AI 語言模型&#xff0c;已經成為文案寫作的得力助手。但要讓它寫出真正符合你需求的文案&#xff0c;關鍵在于如何與它“溝通”&#xff0c;也就是如何設計提示詞&#xff08;Prompt&#xff09;。以下是一些實用的提示詞案例&#xff0c;幫助你解鎖 ChatG…

供排水水工公司開展企業獲得用水營商環境滿意度調查

為了持續提升企業的供水服務品質&#xff0c;進一步優化當地的營商環境&#xff0c;深圳市供排水公司水工公司緊密結合其實際工作情況&#xff0c;特別委托民安智庫開展了2023年度優化營商環境調查專項工作。該項目的核心目的是深入了解并評估市各類獲得用水企業的用水環境滿意…

【Elasticsearch】分桶聚合功能概述

這些聚合功能可以根據它們的作用和應用場景分為幾大類&#xff0c;以下是分類后的結果&#xff1a; 1.基礎聚合&#xff08;Basic Aggregations&#xff09; ? Terms&#xff08;字段聚合&#xff09; 根據字段值對數據進行分組并統計。 例子&#xff1a;按產品類別統計銷…

mysql的cpu使用率100%問題排查

背景 線上mysql服務器經常性出現cpu使用率100%的告警&#xff0c; 因此整理一下排查該問題的常規流程。 1. 確認CPU占用來源 檢查系統進程 使用 top 或 htop 命令&#xff0c;確認是否是 mysqld 進程導致CPU滿載&#xff1a;top -c -p $(pgrep mysqld)2. 實時分析MySQL活動 …

人工智能賦能企業系統架構設計:以ERP與CRM系統為例

一、引言 1.1 研究背景與意義 在數字化時代&#xff0c;信息技術飛速發展&#xff0c;人工智能&#xff08;Artificial Intelligence, AI&#xff09;作為一項具有變革性的技術&#xff0c;正深刻地影響著各個領域。近年來&#xff0c;AI 在技術上取得了顯著突破&#xff0c;…