偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

阿里出品的Sentinel到底是個(gè)什么玩意?

系統(tǒng) Linux
Sentinel是阿里開源的項(xiàng)目,定位為面向分布式服務(wù)架構(gòu)的高可用流量控制組件。主要以流量為切入點(diǎn),從流量控制、熔斷降級(jí)、系統(tǒng)自適應(yīng)保護(hù)等多個(gè)維度來幫助用戶保障微服務(wù)的穩(wěn)定性。

 Sentinel簡(jiǎn)介


Sentinel是阿里開源的項(xiàng)目,定位為面向分布式服務(wù)架構(gòu)的高可用流量控制組件。主要以流量為切入點(diǎn),從流量控制、熔斷降級(jí)、系統(tǒng)自適應(yīng)保護(hù)等多個(gè)維度來幫助用戶保障微服務(wù)的穩(wěn)定性。

Sentinel 介紹

隨著微服務(wù)的流行,服務(wù)和服務(wù)之間的穩(wěn)定性變得越來越重要。Sentinel 應(yīng)運(yùn)而生。

Sentinel 開發(fā)人員介紹

吃水不忘挖井人,感謝這些大佬


Sentinel 的主要特性


Sentinel 分為兩個(gè)部分:

  • 核心庫(Java 客戶端)不依賴任何框架/庫,能夠運(yùn)行于所有 Java 運(yùn)行時(shí)環(huán)境,同時(shí)對(duì) Dubbo / Spring Cloud 等框架也有較好的支持。
  • 控制臺(tái)(Dashboard)基于 Spring Boot 開發(fā),打包后可以直接運(yùn)行,不需要額外的 Tomcat 等應(yīng)用容器。

Sentinel 基本概念

資源

資源是 Sentinel 的關(guān)鍵概念。它可以是 Java 應(yīng)用程序中的任何內(nèi)容,例如,由應(yīng)用程序提供的服務(wù),或由應(yīng)用程序調(diào)用的其它應(yīng)用提供的服務(wù),甚至可以是一段代碼。在接下來的文檔中,我們都會(huì)用資源來描述代碼塊。

只要通過 Sentinel API 定義的代碼,就是資源,能夠被 Sentinel 保護(hù)起來。大部分情況下,可以使用方法簽名,URL,甚至服務(wù)名稱作為資源名來標(biāo)示資源。

規(guī)則

圍繞資源的實(shí)時(shí)狀態(tài)設(shè)定的規(guī)則,可以包括流量控制規(guī)則、熔斷降級(jí)規(guī)則以及系統(tǒng)保護(hù)規(guī)則。所有規(guī)則可以動(dòng)態(tài)實(shí)時(shí)調(diào)整。

Sentinel 功能和設(shè)計(jì)理念


熔斷降級(jí)

什么是熔斷降級(jí)

除了流量控制以外,降低調(diào)用鏈路中的不穩(wěn)定資源也是 Sentinel 的使命之一。由于調(diào)用關(guān)系的復(fù)雜性,如果調(diào)用鏈路中的某個(gè)資源出現(xiàn)了不穩(wěn)定,最終會(huì)導(dǎo)致請(qǐng)求發(fā)生堆積。這個(gè)問題和 Hystrix 里面描述的問題是一樣的。


Sentinel 和 Hystrix 的原則是一致的: 當(dāng)調(diào)用鏈路中某個(gè)資源出現(xiàn)不穩(wěn)定,例如,表現(xiàn)為 timeout,異常比例升高的時(shí)候,則對(duì)這個(gè)資源的調(diào)用進(jìn)行限制,并讓請(qǐng)求快速失敗,避免影響到其它的資源,最終產(chǎn)生雪崩的效果。

熔斷降級(jí)設(shè)計(jì)理念

在限制的手段上,Sentinel 和 Hystrix 采取了完全不一樣的方法。

Hystrix 通過線程池的方式,來對(duì)依賴(在我們的概念中對(duì)應(yīng)資源)進(jìn)行了隔離。這樣做的好處是資源和資源之間做到了最徹底的隔離。缺點(diǎn)是除了增加了線程切換的成本,還需要預(yù)先給各個(gè)資源做線程池大小的分配。

Sentinel 對(duì)這個(gè)問題采取了兩種手段:

  • 通過并發(fā)線程數(shù)進(jìn)行限制

和資源池隔離的方法不同,Sentinel 通過限制資源并發(fā)線程的數(shù)量,來減少不穩(wěn)定資源對(duì)其它資源的影響。這樣不但沒有線程切換的損耗,也不需要您預(yù)先分配線程池的大小。當(dāng)某個(gè)資源出現(xiàn)不穩(wěn)定的情況下,例如響應(yīng)時(shí)間變長(zhǎng),對(duì)資源的直接影響就是會(huì)造成線程數(shù)的逐步堆積。當(dāng)線程數(shù)在特定資源上堆積到一定的數(shù)量之后,對(duì)該資源的新請(qǐng)求就會(huì)被拒絕。堆積的線程完成任務(wù)后才開始繼續(xù)接收請(qǐng)求。

  • 通過響應(yīng)時(shí)間對(duì)資源進(jìn)行降級(jí)

除了對(duì)并發(fā)線程數(shù)進(jìn)行控制以外,Sentinel 還可以通過響應(yīng)時(shí)間來快速降級(jí)不穩(wěn)定的資源。當(dāng)依賴的資源出現(xiàn)響應(yīng)時(shí)間過長(zhǎng)后,所有對(duì)該資源的訪問都會(huì)被直接拒絕,直到過了指定的時(shí)間窗口之后才重新恢復(fù)。

系統(tǒng)負(fù)載保護(hù)

Sentinel 同時(shí)提供系統(tǒng)維度的自適應(yīng)保護(hù)能力。防止雪崩,是系統(tǒng)防護(hù)中重要的一環(huán)。當(dāng)系統(tǒng)負(fù)載較高的時(shí)候,如果還持續(xù)讓請(qǐng)求進(jìn)入,可能會(huì)導(dǎo)致系統(tǒng)崩潰,無法響應(yīng)。在集群環(huán)境下,網(wǎng)絡(luò)負(fù)載均衡會(huì)把本應(yīng)這臺(tái)機(jī)器承載的流量轉(zhuǎn)發(fā)到其它的機(jī)器上去。如果這個(gè)時(shí)候其它的機(jī)器也處在一個(gè)邊緣狀態(tài)的時(shí)候,這個(gè)增加的流量就會(huì)導(dǎo)致這臺(tái)機(jī)器也崩潰,最后導(dǎo)致整個(gè)集群不可用。

針對(duì)這個(gè)情況,Sentinel 提供了對(duì)應(yīng)的保護(hù)機(jī)制,讓系統(tǒng)的入口流量和系統(tǒng)的負(fù)載達(dá)到一個(gè)平衡,保證系統(tǒng)在能力范圍之內(nèi)處理最多的請(qǐng)求。

Sentinel 是如何工作的

Sentinel 的主要工作機(jī)制如下:

  • 對(duì)主流框架提供適配或者顯示的 API,來定義需要保護(hù)的資源,并提供設(shè)施對(duì)資源進(jìn)行實(shí)時(shí)統(tǒng)計(jì)和調(diào)用鏈路分析。
  • 根據(jù)預(yù)設(shè)的規(guī)則,結(jié)合對(duì)資源的實(shí)時(shí)統(tǒng)計(jì)信息,對(duì)流量進(jìn)行控制。同時(shí),Sentinel 提供開放的接口,方便您定義及改變規(guī)則。
  • Sentinel 提供實(shí)時(shí)的監(jiān)控系統(tǒng),方便您快速了解目前系統(tǒng)的狀態(tài)。

Sentinel控制臺(tái)搭建

1.首先我們需要前往官網(wǎng)下載jar包

https://github.com/alibaba/Sentinel/releases


2.打開jar包所在目錄,并且打開命令行窗口


3.啟動(dòng)

注意:?jiǎn)?dòng) Sentinel 控制臺(tái)需要 JDK 版本為 1.8 及以上版本。

  1. java -Dserver.port=8080 -Dcsp.sentinel.dashboard.server=localhost:8080 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-1.8.1.jar 

說明

其中 -Dserver.port=8080 用于指定 Sentinel 控制臺(tái)端口為 8080

如果你已經(jīng)下載好了其他版本的jar包,請(qǐng)將命令sentinel-dashboard-1.8.1.jar 替換為你的jar包名稱


4.sentinel.dashboard就是一個(gè)springboot工程,可以看到項(xiàng)目已經(jīng)在8080端口啟動(dòng)


5.在瀏覽器中輸入url:localhost:8080后即可進(jìn)入主頁面。


6.登錄成功以后如下圖所示


 

責(zé)任編輯:姜華 來源: 今日J(rèn)ava
相關(guān)推薦

2012-02-13 15:50:59

2010-06-28 15:58:45

EclipseJavaIDE

2010-06-29 13:39:26

Eclipse什么玩意兒

2010-07-02 10:10:09

Eclipse

2010-07-05 15:56:01

EclipseRCPECF

2011-11-21 10:25:29

iCloud

2021-12-13 19:57:05

JNDIJava開發(fā)

2021-07-29 06:56:36

分布式系統(tǒng)腦裂

2020-10-29 07:03:56

Docker容器存儲(chǔ)

2021-01-29 12:24:22

電腦電子計(jì)算機(jī)

2020-10-25 20:05:29

Pythonyield開發(fā)

2022-02-16 20:04:08

容器KubernetesShim

2024-07-03 12:04:42

C++this?

2021-01-08 09:48:18

Pythonname變量

2022-04-10 19:26:07

TypeScript類型語法

2021-03-06 09:18:51

JS閉包函數(shù)

2025-03-28 01:33:00

2024-02-07 12:35:00

React并發(fā)模式concurrent

2011-12-28 09:53:18

HTML 5

2021-12-16 15:11:59

Facebook天秤幣加密貨幣
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)