Sentinel(一):Sentinel 介紹和安裝

一、Sentinel 介紹

1、什么是?Sentinel?

? ? ?一句話來說,Sentinel就是:分布式系統的流量衛兵(官網)。

? ? ?隨著微服務的普及,服務調用的穩定性變得越來越重要。Sentinel以“流量”為切入點,在流量

? ? ?控制、斷路、負載保護等多個領域開展工作,保障服務可靠性。

? ??Sentinel 中文官方文檔:https://github.com/alibaba/Sentinel/wiki/%E4%BB%8B%E7%BB%8D

2、Sentinel 特點

? ? ? Sentinel 提供的功能特點如下圖所示:

? ? ? ? ? ? ??

? ? ??Sentinel 主要特點如下:

? ? ? 2.1、豐富的應用場景

? ? ? ? ? ? ? ?Sentinel 承接了阿里巴巴近 10 年的雙十一大促流量的核心場景,例如秒殺(即突發流

? ? ? ? ? ? ? ?量控制在系統容量可以承受的范圍)、消息削峰填谷、集群流量控制、實時熔斷下游不

? ? ? ? ? ? ? ?可用應用等。

? ? ? 2.2、完備的實時監控

? ? ? ? ? ? ??Sentinel 同時提供實時的監控功能。您可以在控制臺中看到接入應用的單臺機器秒級數

? ? ? ? ? ? ? 據,甚至 500 臺以下規模的集群的匯總運行情況。

? ? ? 2.3、廣泛的開源生態

? ? ? ? ? ? ? ?Sentinel 提供開箱即用的與其它開源框架/庫的整合模塊,例如與 Spring Cloud、

? ? ? ? ? ? ? ?Apache Dubbo、gRPC、Quarkus 的整合。您只需要引入相應的依賴并進行簡單的配置

? ? ? ? ? ? ? ?即可快速地接入 Sentinel。同時 Sentinel 提供 Java/Go/C++ 等多語言的原生實現。

? ? ? ? ? ? ? ?如下圖所示:

? ? ? ? ? ? ? ?? ??

? ? ? 2.4、完善的SPI擴展機制

? ? ? ? ? ? ??Sentinel 提供簡單易用、完善的 SPI 擴展接口。您可以通過實現擴展接口來快速地定制邏

? ? ? ? ? ? ? 輯。例如定制規則管理、適配動態數據源等。

3、Sentinel 解決了什么問題?

3.1、分布式系統中面臨的問題:

? ? ? ? ?復雜的體系結構中的應用程序可能有數十個依賴關系,每個依賴關系在某些時候將不可避免

? ? ? ? ?的失敗,比如如下的例子中,當我們調用A、E、F、J、K這幾個服務的時候如果其中一個服

? ? ? ? ?務出現問題會造成什么問題?

? ? ? ? ?其實就會出現整體系統效率全部下降,而且嚴重就會出現服務雪崩的問題!

? ? ? ? ?如下圖所示業務:

? ? ? ? ? ? ? ?

3.2、什么是服務雪崩?

? ? ? ??多個微服務之間調用的時候,假設A調用B和C,B和C又調用其他的微服務,這就是所謂的

? ? ? ?扇出。如果扇出的某個鏈路上某個微服務調用的響應時間過程或者不可用,微服務A的調用

? ? ? ?就用占用越來越多的系統資源,從而引起系統崩潰,這也就是服務雪崩。其實就是服務的

? ? ? ? 高可用遭到了破壞。

? ? ? ? 對于高流量的應用來說,單一的后端依賴可能會導致服務器上的所有資源都在幾秒鐘內飽

? ? ? ? 和。同時還有可能造成這些應用程序導致服務之間的延遲增加,備份列隊,線程和其他的

? ? ? ? 系統資源緊張,導致整個系統發生更多的級聯故障。這些都表示需要對故障和延遲進行隔

? ? ? ? 離和管理,以便單個依賴關系失敗,不能取消整個應用程序或系統,所以通常發生了一個

? ? ? ? 模塊的某個實例失敗后,這時候這個模塊依然還會接受流量,然后這個有問題的模塊還調

? ? ? ? 用其他的模塊,這樣就會發生級聯故障,或者叫做雪崩

3.3、Sentinel 是如何解決服務雪崩問題的?

? ? ? ? ?要解決服務雪崩問題的出現,就要在某個鏈路上的服務不可用用時,對整個鏈路服務做

? ? ? ? ?服務降級處理;

? ? ? ? ?Sentinel通過斷路器實現熔斷降級,保證在一個依賴出現問題的情況下,不會導致整體服務

? ? ? ? ?失敗,避免級聯故障(即雪崩問題出現),提高分布式系統的彈性。

? ? ? ? ?Sentinel斷路器:

? ? ? ? ? ? ? ?斷路器,它本身是一種開關裝置,當某個服務單元發生故障之后,通過斷路器的故障監

? ? ? ? ? ? ? ?控(類似于熔斷保險絲),向調用方返回一個符合預期的、可處理的備選響應

? ? ? ? ? ? ? (FallBack),而不是長時間的等待或者拋出調用方法無法出的異常,這樣就保證了

? ? ? ? ? ? ? ?服務調用方的不會被長時間、不必要的占用,從而避免了故障在分布式系統中蔓延

? ? ? ? ? ? ?(類似于病毒傳染),從而避免了故障在系統中蔓延,乃至崩潰。

? ? ? ??

4、Sentinel 對比其他同類產品的優勢

? ? ??對比與其他的產品而言,如:Hystrix,Sentinel 不需要我們自己手動搭建監控平臺,而且它有

? ? ? 一套類似于Nacos的Web界面,可以讓我們進行更加細粒度的配置流控、速率、服務熔斷、

? ? ? 服務降級等,在使用上更簡單方便。

5、Sentinel 組成

? ? ?Sentinel 由2部分組成,即:核心庫(Java 客戶端)與 控制臺(Dashboard)

? ? ?1)核心庫(Java 客戶端)

? ? ? ? ? ?不依賴任何框架/庫,能夠運行于所有 Java 運行時環境,同時對 Dubbo / Spring Cloud 等框

? ? ? ? ? ?架也有較好的支持。

? ? ? ? ? ?在工作中,如果需要集成?Sentinel ,需要深入?Sentinel 的核心庫;但如果時spring cloud 項

? ? ? ? ? ?目一般直接引入spring-cloud-starter-alibaba-sentinel,該依賴中包含了?Sentinel 核心庫,

? ? ? ? ? ? 如下圖所示:

? ? ? ? ? ? ? ? ? ??

? ? ? ? ? ?Sentinel 核心庫如下所示:

<dependency><groupId>com.alibaba.csp</groupId><artifactId>sentinel-core</artifactId><version>版本</version>
</dependency>

? ? ?2)控制臺(Dashboard)

? ? ? ? ? ?控制臺(Dashboard)基于 SpringBoot開發,打包后可以直接運行,不需要額外的Tomcat

? ? ? ? ? ?等應用容器。

二、Sentinel 安裝

? ? ? ?注意:這里的?Sentinel 安裝 其實安裝的是?Sentinel 控制臺(Dashboard)

? ? ? ?下載地址:https://github.com/alibaba/Sentinel/releases

? ? ? ?由上邊知道,Sentinel?Dashboard 是基于spring boot 開發,所以我們下載編譯好的

? ? ? ?jar 包,直接運行就行了。如下圖所示:

? ? ? ? ? ? ??

? ? ? ?注意:下載時注意看下你所下載的版本對JDK的版本的要求,JDK版本不一致可能啟動報錯

2、運行?Sentinel?Dashboard

? ? ?Sentinel?Dashboard 默認監聽端口是 8080,我們可以在啟動時使用參數?-Dserver.port 來指定

? ? ?其所監聽的端口,如:-Dserver.port=8090(指定 Dashboard? 監聽端口是 8090);

? ? ?Sentinel?Dashboard控制臺默認登錄用戶和密碼都是sentinel

? ? ?運行命令:java -Dserver.port=8090 -jar sentinel-dashboard-1.8.8.jar 來啟動 Dashboard;

? ? 如下圖所示:

? ? ? ? ??

? ? ?Sentinel?Dashboard 啟動成功后在瀏覽器訪問http://localhost:8090,并使用默認用戶?sentinel

? ? ?登錄,如下圖所示:

? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ?

? ? ? ? ? ? ?

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

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

相關文章

pyspark 初試

1、安裝jdk sudo apt-get install openjdk-17-jdk 2、安裝spark curl -o spark.tgz https://mirrors.tuna.tsinghua.edu.cn/apache/spark/spark-4.0.0/spark-4.0.0-bin-hadoop3.tgz tar -xvf spark.tgz mv spark-4.0.0-bin-hadoop3 /opt/spark修改 /etc/profile 添加 exp…

深入解析select模型:FD_SET機制與1024限制的終極指南

在Linux網絡編程中&#xff0c;select函數是最經典的I/O多路復用技術之一&#xff0c;但其核心機制FD_SET的1024限制常成為高并發系統的瓶頸。本文將深入剖析FD_SET實現原理&#xff0c;并提供突破限制的實戰方案。 一、FD_SET底層結構解析 FD_SET本質是固定長度的位圖數組&am…

C函數基礎.go

前言&#xff1a; 在Go語言中&#xff0c;函數是構成程序的基本模塊&#xff0c;它封裝了一段具有特定功能的代碼&#xff0c;使得代碼更易讀&#xff0c;更易維護和重用。熟練掌握函數的定義、調用以及相關特性是成為Go語言開發者的必經之路。 目錄 函數定義&#xff1a;給代…

什么是池化

池化是深度學習中用于降低數據維度、提取核心特征的一種操作&#xff0c;主要應用于卷積神經網絡&#xff08;CNN&#xff09;。其核心思想是通過對局部區域進行聚合統計&#xff08;如取最大值、平均值&#xff09;&#xff0c;保留關鍵信息的同時減少計算量。 池化的作用 降維…

C++ 性能分析工具:Valgrind 與 perf

在 C 開發中&#xff0c;性能優化是提升軟件質量的關鍵環節。內存泄漏和 CPU 資源消耗是最常見的性能瓶頸&#xff0c;而 Valgrind 和 perf 作為專業的性能分析工具&#xff0c;能幫助開發者精準定位這些問題。下面將從工具原理、使用方法、實戰案例等方面進行詳細介紹。 一、…

ABP VNext + MongoDB 數據存儲:多模型支持與 NoSQL 擴展

&#x1f680; ABP VNext MongoDB 數據存儲&#xff1a;多模型支持與 NoSQL 擴展&#xff08;生產級實踐&#xff09; 目錄 &#x1f680; ABP VNext MongoDB 數據存儲&#xff1a;多模型支持與 NoSQL 擴展&#xff08;生產級實踐&#xff09;&#x1f3af; 引言&#x1f9f0…

Cursor Rules 的核心定位與作用 DevOps是

Cursor Rules 是 AI 編程工具 Cursor IDE 中的核心功能&#xff0c;用于約束 AI 生成代碼的行為&#xff0c;確保其符合項目規范、編碼風格或特定技術需求。它本質上是一套持久化、可復用的指令集&#xff0c;會動態插入到 AI 模型的上下文提示中&#xff0c;指導其生成代碼的邏…

Qt事件處理機制

事件的概念 在Qt中&#xff0c;以事件驅動UI工具集&#xff0c;包括信號和槽都依賴于Qt的事件處理機制。通常事件是由窗口系統或Qt自身產生的&#xff0c;用以響應所發生的各類事情。如&#xff1a;用戶按下并釋放鍵盤或鼠標、窗口縮放后重繪、定時器到時等。如下圖&#xff1…

【慧游魯博】【11】小程序端·游覽畫卷修改·支持圖片url格式·結合圖床上傳和加載·數據對接

文章目錄 需求修改細節前端主要修改點說明&#xff1a;前端傳遞格式 后端ArtifactItem 類&#xff1a;ScrollServiceImpl 類&#xff1a;修改 InfoPanel 結構重構 ScrollHorizontalRollComposer修改后的 ScrollHorizontalRollComposer移除冗余代碼修改總結 數據流圖片格式兼容性…

攻克SQL審核“最后堡壘”!PawSQL首發T-SQL存儲過程深度優化引擎

為什么存儲過程審核那么難&#xff1f; 存儲過程將數據操作邏輯固化在數據庫層&#xff0c;一次編譯、多次執行&#xff0c;既能大幅提升性能&#xff0c;也能通過權限隔離增強安全。然而&#xff0c;正因其邏輯復雜、分支眾多&#xff0c;存儲過程內部的 SQL 審核與優化常常成…

計算機網絡零基礎完全指南

目錄 ?? 什么是計算機網絡 生活中的類比 計算機網絡的本質 網絡的發展歷程 ?? 網絡IP詳解(重點) 1. IP地址是什么? 生活例子:IP地址就像門牌號 IP地址的格式 IP地址的二進制表示 2. IP地址的分類詳解 A類地址(大型網絡) B類地址(中型網絡) C類地址(小…

DL___線性神經網絡

1&#xff09;回歸&#xff08;regression&#xff09;是能為一個或多個自變量與因變量之間關系建模的一類方法。 在自然科學和社會科學領域&#xff0c;回歸經常用來表示輸入和輸出之間的關系。 2&#xff09;一般回歸是和預測有關&#xff0c;比如預測價格(房屋&#xff0c;…

WSL2安裝與使用(USB、GPU、虛擬機、圖形界面)

文章目錄 前言WSL2安裝&#xff08;手動安裝&#xff09;WSL2基礎使用VS Code與WSL2配合使用連接USB設備WSL2中使用GPU&#xff08;RTX5060Ti 16G&#xff09;與虛擬機兼容使用&#xff08;Virtual Box&#xff09;圖形與桌面環境WSL消失&#xff08;災難性故障&#xff09;問題…

uni-app項目實戰筆記16--實現頭部導航欄效果

先來看效果&#xff1a; 要求&#xff1a;頂部導航欄要始終固定在上方&#xff0c;不隨頁面上下拖動而消失。 代碼實現&#xff1a; 1.定義一個自定義導航欄組件&#xff1a;custom-nav-bar.vue&#xff0c;并寫入如下代碼&#xff1a; <template><view class"…

web3.js 核心包及子模塊

. 核心包 (web3) 功能:提供基礎連接、工具函數和核心功能。 包含子模塊: web3.eth - 以太坊區塊鏈交互 web3.utils - 輔助工具函數 web3.shh - Whisper 協議(已廢棄) web3.bzz - Swarm 去中心化存儲(已廢棄) web3.net - 網絡相關功能 web3.contract - 智能合約交互 web3.…

訓練檢測之前的視頻抽幀

接下來安裝pytorch Previous PyTorch Versions 視頻抽幀 import cv2def extract_frames(video_path, output_folder, frame_rate1):"""從視頻中抽取幀。:param video_path: 視頻文件的路徑:param output_folder: 存儲幀的文件夾路徑:param frame_rate: 抽取的…

智能家居HA篇 二、配置Home Assistant并實現外部訪問

智能家居HA篇 一、Win10 VM虛擬機安裝 Home Assistant 手把手教學 二、通過Cpolar配置Home Assistant并實現外部訪問 文章目錄 智能家居HA篇前言一、內網穿透工具&#xff08;cpolar&#xff09;二、映射HA端口1.訪問cpolar儀表2.創建賬號并登錄3.創建隧道 三、HA設置及公網訪…

day09——Java基礎項目(ATM系統)

文章目錄 Java項目實戰&#xff1a;手把手開發ATM銀行系統&#xff08;附完整源碼&#xff09;一、系統架構設計1. 三層架構模型2. 核心數據結構 二、核心功能實現1. 開戶功能&#xff08;含唯一卡號生成&#xff09;2. 登錄安全驗證3. 存取款業務4. 安全轉賬實現 三、賬戶安全…

計算機網絡:(五)信道復用技術,數字傳輸系統,寬帶接入技術

計算機網絡&#xff1a;&#xff08;五&#xff09;信道復用技術&#xff0c;數字傳輸系統&#xff0c;寬帶接入技術 前言一、信道復用技術1. 為什么需要復用技術&#xff1f;2. 頻分復用&#xff08;FDM&#xff09;3. 時分復用&#xff08;TDM&#xff09;4. 統計時分復用&am…

【期末總結】計算機網絡

【期末總結】計算機網絡 參考鏈接&#xff1a;計算機網絡知識點全面總結&#xff08;有這一篇就夠了&#xff01;&#xff01;&#xff01;&#xff09;-CSDN博客 一.概述 1.1 計算機網絡的分類 按照網絡的作用范圍&#xff1a;廣域網&#xff08;WAN&#xff09;、城域網&a…