????????Sentinel官網(wǎng):https://sentinelguard.io/zh-cn
????????Sentinel:Sentinel是面向分布式、多語言異構化服務架構的流量治理組件,主要以流量為切入點,從流量控制、流量路由、熔斷降級、系統(tǒng)自適應保護等多個維度來幫助用戶
保障微服務的穩(wěn)定性Sentinel與Hystrix對比
????????相同:Sentinel和Hystrix的原則是一致的:當檢測到調用鏈路中某個資源出現(xiàn)不穩(wěn)定的表現(xiàn),例如請求響應時間長或異常比例升高的時候,則對這個資源的調用進行限制,讓請求快速失敗,避免影響到其它的資源而導致級聯(lián)故障
????????不同:
?? ??? ?1)限制方式區(qū)別:
????????????????Hystrix通過線程池隔離的方式,來對依賴(在Sentinel的概念中對應 資源)進行了隔離。這樣做的好處是資源和資源之間做到了最徹底的隔離。缺點是除了增加了線程切換的成本(過多的線程池導致線程數(shù)目過多),還需要預先給各個資源做線程池大小的分配。
????????????????Sentinel:通過并發(fā)線程數(shù)進行限制,在源頭上進行限制
? ? ? ? ? ? ? ? ? ? ? ? ? ? 通過響應時間對資源進行降級,當依賴的資源響應時間過長,所有對該資源的訪問都會被拒絕,知道過了指定時間窗口之后才重新恢復
?? ??? ?2)是否有控制臺
?? ??? ??? ?Sentinel提供一個輕量級的開源控制臺,它提供機器發(fā)現(xiàn)以及健康情況管理、監(jiān)控(單機和集群),規(guī)則管理和推送的功能。另外,鑒權在在產環(huán)境中也必不可少。而Hystrix需要自己搭建監(jiān)控平臺dashboard。Hystrix沒有提供UI界面進行服務熔斷、服務降級等配置(使用的是@HystrixCommand注解來進行參數(shù)設置,會造成代碼入侵)Sentinel的特性
?????????豐富的應用場景:Sentinel承接了阿里巴巴近10年的雙十一大促流量的核心場景,例如秒殺(即突發(fā)流量控制在系統(tǒng)容量可以承受的范圍)、消息削峰填谷、集群流量控制、實時熔斷下游不可用應用等。
????????完備的實時監(jiān)控:Sentinel同時提供實時的監(jiān)控功能。您可以在控制臺中看到接入應用的單臺機器秒級數(shù)據(jù),甚至500臺以下規(guī)模的集群的匯總運行情況。
????????廣泛的開源生態(tài):Sentinel提供開箱即用的與其它開源框架/庫的整合模塊,例如與Spring Cloud、Dubbo的整合。您只需要引入相應的依賴并進行簡單的配置即可快速地接入Sentinel。
????????完善的SPI擴展點:Sentinel提供簡單易用、完善的SPI擴展接口。您可以通過實現(xiàn)擴展接口來快速地定制邏輯。例如定制規(guī)則管理、適配動態(tài)數(shù)據(jù)源等。
?? ?Sentinel的主要特性
?? ??? ???
Sentinel下載安裝部署
? ? ? ? 1.下載網(wǎng)址:?Releases · alibaba/Sentinel · GitHub,下載所需要的jar包
? ? ? ? 2.將該jar包放到一個非中文的目錄下,輸入以下命令
???
java -jar sentinel-dashboard-1.7.1.jar &
? ? ? ? 然后就可以看到該jar包被啟動了,打開瀏覽器輸入
? ? ? ??
http://localhost:8080/#/login
? ? ?
?
?
???????? 初始的用戶名和密碼都為sentinel,輸入后點擊登錄即可進入該頁面
? ? ? ? ?3.在page項目下導入依賴<!-- Sentinel核心環(huán)境依賴 --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId> </dependency>
? ? ? ? ?4.配置page的核心配置文件
sentinel: transport: dashboard: 127.0.0.1:8080 #配置Sentinel控制臺端口 port: 8719
? ? ? ? ?5.重啟page項目,我們的Nacos注冊中心也需要啟動,不然page無法運行
????????隨便訪問一個接口?
1
????????就可以在Sentinel的可視化端口看到剛剛接口的信息,并可以實時的進行限流降級等操作,不需要重啟服務器,相當?shù)姆奖?/p>
文章來源:http://www.zghlxwxcb.cn/news/detail-569348.html
?Sentinel基本概念
????????資源:它可以是Java應用程序中的任何內容,例如,由應用程序提供的服務,或由應用程序調用的其它應用提供的服務,甚至可以是一段代碼。我們請求的API接口就是資源。只要通過Sentinel API定義的代碼,就是資源,能夠被Sentinel保護起來。大部分情況下,可以使方法法簽名、URL、甚至服務名稱作為資源名來標示資源
????????規(guī)則:圍繞資源的實時狀態(tài)設定的規(guī)則,可以包括流量控制規(guī)則、熔斷降級規(guī)則以及系統(tǒng)保護規(guī)則。所有規(guī)則可以動態(tài)實時調整文章來源地址http://www.zghlxwxcb.cn/news/detail-569348.html
到了這里,關于SCA Sentinel分布式系統(tǒng)的流量防衛(wèi)兵的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!