專欄集錦,大佬們可以收藏以備不時(shí)之需
Spring Cloud實(shí)戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9270827.html
Python 實(shí)戰(zhàn)專欄:https://blog.csdn.net/superdangbo/category_9271194.html
Logback 詳解專欄:https://blog.csdn.net/superdangbo/category_9271502.html
tensorflow專欄:https://blog.csdn.net/superdangbo/category_8691332.html
Redis專欄:https://blog.csdn.net/superdangbo/category_9950790.html
AI機(jī)器學(xué)習(xí)實(shí)戰(zhàn):
AI機(jī)器學(xué)習(xí)實(shí)戰(zhàn) | 使用 Python 和 scikit-learn 庫進(jìn)行情感分析
AI機(jī)器學(xué)習(xí) | 基于librosa庫和使用scikit-learn庫中的分類器進(jìn)行語音識別
Python實(shí)戰(zhàn):
Python實(shí)戰(zhàn) | 使用 Python 和 TensorFlow 構(gòu)建卷積神經(jīng)網(wǎng)絡(luò)(CNN)進(jìn)行人臉識別
Spring Cloud實(shí)戰(zhàn):
Spring Cloud 實(shí)戰(zhàn) | 解密Feign底層原理,包含實(shí)戰(zhàn)源碼
Spring Cloud 實(shí)戰(zhàn) | 解密負(fù)載均衡Ribbon底層原理,包含實(shí)戰(zhàn)源碼
1024程序員節(jié)特輯文章:
1024程序員狂歡節(jié)特輯 | ELK+ 協(xié)同過濾算法構(gòu)建個(gè)性化推薦引擎,智能實(shí)現(xiàn)“千人千面”
1024程序員節(jié)特輯 | 解密Spring Cloud Hystrix熔斷提高系統(tǒng)的可用性和容錯(cuò)能力
1024程序員節(jié)特輯 | ELK+ 用戶畫像構(gòu)建個(gè)性化推薦引擎,智能實(shí)現(xiàn)“千人千面”
1024程序員節(jié)特輯 | OKR VS KPI誰更合適?
1024程序員節(jié)特輯 | Spring Boot實(shí)戰(zhàn) 之 MongoDB分片或復(fù)制集操作
Spring實(shí)戰(zhàn)系列文章:
Spring實(shí)戰(zhàn) | Spring AOP核心秘笈之葵花寶典
Spring實(shí)戰(zhàn) | Spring IOC不能說的秘密?
國慶中秋特輯系列文章:
國慶中秋特輯(八)Spring Boot項(xiàng)目如何使用JPA
國慶中秋特輯(七)Java軟件工程師常見20道編程面試題
國慶中秋特輯(六)大學(xué)生常見30道寶藏編程面試題
國慶中秋特輯(五)MySQL如何性能調(diào)優(yōu)?下篇
國慶中秋特輯(四)MySQL如何性能調(diào)優(yōu)?上篇
國慶中秋特輯(三)使用生成對抗網(wǎng)絡(luò)(GAN)生成具有節(jié)日氛圍的畫作,深度學(xué)習(xí)框架 TensorFlow 和 Keras 來實(shí)現(xiàn)
國慶中秋特輯(二)浪漫祝福方式 使用生成對抗網(wǎng)絡(luò)(GAN)生成具有節(jié)日氛圍的畫作
國慶中秋特輯(一)浪漫祝福方式 用循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)或長短時(shí)記憶網(wǎng)絡(luò)(LSTM)生成祝福詩詞
1、Sentinel 發(fā)展歷史
Sentinel 是一款面向分布式系統(tǒng)的流量控制、熔斷降級組件,由阿里巴巴集團(tuán)研發(fā)。其發(fā)展歷史可以追溯到 2012 年,起初是阿里巴巴內(nèi)部使用,后來逐漸開源并發(fā)展成為一個(gè)獨(dú)立的項(xiàng)目。Sentinel 致力于提供高性能、可擴(kuò)展、安全的流量控制解決方案,以滿足現(xiàn)代分布式系統(tǒng)的需求。
2012 年,Sentinel 誕生,主要功能為入口流量控制。
2013-2017 年,Sentinel 在阿里巴巴集團(tuán)內(nèi)部迅速發(fā)展,成為基礎(chǔ)技術(shù)模塊,覆蓋了所有的核心場景。Sentinel 也因此積累了大量的流量歸整場景以及生產(chǎn)實(shí)踐。
2018 年,Sentinel 開源,并持續(xù)演進(jìn)。
2019 年,Sentinel 朝著多語言擴(kuò)展的方向不斷探索,推出 C++ 原生版本,同時(shí)針對 Service Mesh 場景也推出了 Envoy 集群流量控制支持,以解決 Service Mesh 架構(gòu)下多語言限流的問題。
2020 年,推出 Sentinel Go 版本,繼續(xù)朝著云原生方向演進(jìn)。
2021 年,Sentinel 正在朝著 2.0 云原生高可用決策中心組件進(jìn)行演進(jìn);同時(shí)推出了 Sentinel Rust 原生版本。同時(shí)我們也在 Rust 社區(qū)進(jìn)行了 Envoy WASM extension 及 eBPF extension 等場景探索。
2022 年,Sentinel 品牌升級為流量治理,領(lǐng)域涵蓋流量路由/調(diào)度、流量染色、流控降級、過載保護(hù)/實(shí)例摘除等;同時(shí)社區(qū)將流量治理相關(guān)標(biāo)準(zhǔn)抽出到 OpenSergo 標(biāo)準(zhǔn)中,Sentinel 作為流量治理標(biāo)準(zhǔn)實(shí)現(xiàn)。
Sentinel 的主要應(yīng)用場景如下:
- 流量控制
在分布式系統(tǒng)中,服務(wù)間的調(diào)用可能會(huì)產(chǎn)生大量的請求,導(dǎo)致系統(tǒng)過載。Sentinel 可以通過設(shè)置流量控制策略,對請求進(jìn)行限制,確保系統(tǒng)能夠在高并發(fā)場景下穩(wěn)定運(yùn)行。 - 熔斷降級
在分布式系統(tǒng)中,服務(wù)之間的依賴關(guān)系可能導(dǎo)致某一個(gè)服務(wù)的故障影響到整個(gè)系統(tǒng)。Sentinel 支持熔斷機(jī)制,當(dāng)某個(gè)服務(wù)出現(xiàn)故障時(shí),可以自動(dòng)切斷請求,避免故障擴(kuò)散。同時(shí),Sentinel 還支持降級策略,對故障服務(wù)提供降級處理,如返回默認(rèn)值、日志記錄等。 - 資源隔離
Sentinel 可以將不同資源的訪問進(jìn)行隔離,例如 HTTP 請求、數(shù)據(jù)庫連接等。這樣,當(dāng)某個(gè)資源出現(xiàn)問題時(shí),可以限制其對其他資源的影響,提高系統(tǒng)的穩(wěn)定性。 - 系統(tǒng)監(jiān)控
Sentinel 提供了實(shí)時(shí)的監(jiān)控界面,可以查看系統(tǒng)的流量、熔斷、降級等狀態(tài)。這有助于開發(fā)人員及時(shí)發(fā)現(xiàn)系統(tǒng)問題,并進(jìn)行相應(yīng)的優(yōu)化。 - 應(yīng)用擴(kuò)展
Sentinel 提供了豐富的擴(kuò)展點(diǎn),如自定義流量控制策略、降級策略等。這使得開發(fā)者可以根據(jù)業(yè)務(wù)需求,靈活地定制和擴(kuò)展 Sentinel 的功能。
在 Spring Cloud 項(xiàng)目中,Sentinel 可以與 Spring Cloud 組件無縫集成,如 Spring Cloud Gateway、Spring Cloud Alibaba Nacos Discovery、Spring Cloud Alibaba Sentinel等。這使得開發(fā)人員可以更方便地在 Spring Cloud 項(xiàng)目中使用 Sentinel,提升系統(tǒng)的穩(wěn)定性、可靠性和可擴(kuò)展性。
總之,Sentinel 作為一款發(fā)展歷史悠久的分布式系統(tǒng)組件,其豐富的功能和強(qiáng)大的性能得到了業(yè)界的認(rèn)可。在 Spring Cloud 項(xiàng)目中使用 Sentinel,可以有效解決分布式系統(tǒng)面臨的高并發(fā)、故障擴(kuò)散等問題,提高系統(tǒng)的穩(wěn)定性、可靠性和可擴(kuò)展性。
https://sentinelguard.io/zh-cn/docs/introduction.html
2、Sentinel 具體參數(shù)
在 Spring Cloud 項(xiàng)目中使用 Sentinel,主要需要配置以下幾個(gè)參數(shù):
- 流量控制策略
Sentinel 提供了多種流量控制策略,如流量限制、突發(fā)流量限制、請求會(huì)話數(shù)限制等。在application.yml
配置文件中可以設(shè)置默認(rèn)的流量控制策略以及具體參數(shù)。
案例:
sentinel:
flow:
defaultFlowId: 1
control:
default:
limitType: flow
flowConfig:
maxFlow: 1000
burstCapacity: 500
在這個(gè)案例中,我們設(shè)置了默認(rèn)的流量控制策略為 flow
,最大流量為 1000,突發(fā)容量為 500。
2. 降級策略
Sentinel 支持基于 HTTP 狀態(tài)碼、異常類型和自定義規(guī)則的降級策略。在 application.yml
配置文件中可以設(shè)置降級策略以及具體參數(shù)。
案例:
sentinel:
degrade:
enabled: true
selectors: default
rules:
- type: http-status
status: 500
- type: exception
exception: java.lang.ArithmeticException
在這個(gè)案例中,我們設(shè)置了當(dāng) HTTP 狀態(tài)碼為 500 時(shí)進(jìn)行降級,以及當(dāng)發(fā)生 ArithmeticException
異常時(shí)進(jìn)行降級。
- 資源包裝
Sentinel 提供了資源包裝器,可以攔截請求并測量資源使用情況。在application.yml
配置文件中可以設(shè)置資源包裝器的參數(shù)。
案例:
sentinel:
resource:
watermark:
enabled: true
interval: 60000
statInterval: 1000
在這個(gè)案例中,我們設(shè)置了水位標(biāo)記的開啟狀態(tài),以及統(tǒng)計(jì)間隔為 10 秒,水位標(biāo)記間隔為 60 秒。
4. 系統(tǒng)參數(shù)
Sentinel 提供了許多系統(tǒng)參數(shù),如守護(hù)進(jìn)程模式、日志級別等。在 application.yml
配置文件中可以設(shè)置這些系統(tǒng)參數(shù)。
案例:
sentinel:
defender:
mode: standalone
log:
level: debug
在這個(gè)案例中,我們設(shè)置了守護(hù)進(jìn)程模式為獨(dú)立模式,以及日志級別為 debug。
5. 應(yīng)用參數(shù)
Sentinel 支持為每個(gè)應(yīng)用設(shè)置獨(dú)立的參數(shù),如流量控制策略、降級策略等。在 application.yml
配置文件中可以設(shè)置應(yīng)用參數(shù)。
案例:
application:
name: my-application
sentinel:
flow:
control:
default:
limitType: flow
flowConfig:
maxFlow: 1000
burstCapacity: 500
degrade:
rules:
- type: exception
exception: java.lang.ArithmeticException
在這個(gè)案例中,我們?yōu)槊麨?my-application
的應(yīng)用設(shè)置了獨(dú)立的流量控制策略和降級規(guī)則。
以上就是 Spring Cloud 項(xiàng)目中如何使用 Sentinel 并進(jìn)行配置的詳細(xì)介紹。實(shí)際應(yīng)用中,您可以根據(jù)需求進(jìn)行更詳細(xì)的配置,以滿足不同的流量控制、降級和監(jiān)控需求。
3、實(shí)戰(zhàn)Spring Cloud 項(xiàng)目中使用 Sentinel
在 Spring Cloud 項(xiàng)目中使用 Sentinel,主要是通過以下幾個(gè)步驟來完成:引入依賴、初始化 Sentinel、配置 Sentinel、使用 Sentinel 進(jìn)行流量控制、熔斷和降級、監(jiān)控 Sentinel。下面將詳細(xì)介紹并在每個(gè)步驟給出具體案例。
- 引入依賴
在項(xiàng)目的pom.xml
文件中添加 Sentinel 的依賴:
<dependency>
<groupId>com.alibaba.csp</groupId>
<artifactId>sentinel-core</artifactId>
<version>1.8.2</version>
</dependency>
- 初始化 Sentinel
在項(xiàng)目的主類上添加@EnableSentinel
注解,以啟動(dòng) Sentinel 守護(hù)進(jìn)程:
@SpringBootApplication
@EnableSentinel
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
- 配置 Sentinel
在application.properties
或application.yml
文件中配置 Sentinel:
sentinel:
degrade:
enabled: true
selectors: default
flow:
defaultFlowId: 1
control:
default:
limitType: flow
flowConfig:
maxFlow: 1000
burstCapacity: 500
這里配置了降級功能,并設(shè)置了默認(rèn)的流量控制策略。
4. 使用 Sentinel 進(jìn)行流量控制
在需要控制流量的方法上添加 @Block
注解:
案例:文章來源:http://www.zghlxwxcb.cn/news/detail-755874.html
@RestController
public class MyController {
@GetMapping("/controlFlow")
public String controlFlow() {
// 業(yè)務(wù)邏輯
return "Hello, Sentinel!";
}
}
- 使用 Sentinel 進(jìn)行熔斷
在需要進(jìn)行熔斷的方法上添加@Breakpoint
注解:
案例:
@RestController
public class MyController {
@GetMapping("/breakpoint")
public String breakpoint() {
// 業(yè)務(wù)邏輯
return "Hello, Sentinel!";
}
}
- 使用 Sentinel 進(jìn)行降級
在需要進(jìn)行降級的方法上添加@Degrade
注解:
案例:
@RestController
public class MyController {
@Degrade
@GetMapping("/degrade")
public String degrade() {
// 業(yè)務(wù)邏輯
return "Hello, Sentinel!";
}
}
- 監(jiān)控 Sentinel
啟動(dòng) Sentinel 監(jiān)控頁面,查看實(shí)時(shí)的流量控制、熔斷和降級狀態(tài):
http://localhost:8080/console
以上就是如何在 Spring Cloud 項(xiàng)目中使用 Sentinel 的詳細(xì)介紹。通過使用 Sentinel,我們可以更好地管理服務(wù)流量,保障系統(tǒng)的穩(wěn)定性和可靠性。在實(shí)際項(xiàng)目中,還可以根據(jù)需求進(jìn)行更復(fù)雜的配置,以滿足不同的流量控制需求。文章來源地址http://www.zghlxwxcb.cn/news/detail-755874.html
到了這里,關(guān)于Spring Cloud實(shí)戰(zhàn) |分布式系統(tǒng)的流量控制、熔斷降級組件Sentinel如何使用的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!