SpringCloudAlibaba集成搭建Sentinel+Nacos+Dubbo

Sentinel是微服務(wù)架構(gòu)中的限流器读整、熔斷器簿训,用于保護(hù)我們的服務(wù)。
官方文檔:Sentinel中文文檔
Sentinel的文檔寫的非常的棒米间!你想知道的一切都可以在文檔中找到强品。

啟動(dòng)Sentinel控制臺(tái)

下載地址:Sentinel控制臺(tái)下載
執(zhí)行命令java -Dserver.port=8888 -Dcsp.sentinel.dashboard.server=localhost:8888 -Dproject.name=sentinel-dashboard -jar sentinel-dashboard-x.x.x.jar,設(shè)置控制臺(tái)IP和端口屈糊。
訪問http://127.0.0.1:8888/
賬密都是sentinel
就可以進(jìn)入管理控制臺(tái)了的榛。

image.png

或者你可以pull源碼下來,到dashboard模塊下執(zhí)行啟動(dòng)逻锐,這個(gè)模塊是一個(gè)SpringBoot項(xiàng)目夫晌,修改配置文件后可以直接運(yùn)行

Sentinel集成Nacos

Sentinel使用Nacos作為配置中心的話,需要在源碼上做一些小小調(diào)整昧诱,啟動(dòng)一個(gè)Nacos版本的控制臺(tái)晓淀。

DownLoad源碼
git clone https://github.com/alibaba/Sentinel.git
調(diào)整sentinel-dashboard的源碼
  1. 復(fù)制 src/test/java/com/alibaba/csp/sentinel/dashboard/rule/nacos/ 目錄到src/main/java/com/alibaba/csp/sentinel/dashboard/rule/

  2. 修改com.alibaba.csp.sentinel.dashboard.rule.nacos.NacosConfig#nacosConfigService 要加上端口號,否則會(huì)拋報(bào)錯(cuò)

    @Bean
    public ConfigService nacosConfigService() throws Exception {
        return ConfigFactory.createConfigService("localhost:8848");
    }
  1. 修改com.alibaba.csp.sentinel.dashboard.controller.v2.FlowControllerV2
    @Autowired
    @Qualifier("flowRuleNacosProvider")
    private DynamicRuleProvider<List<FlowRuleEntity>> ruleProvider;
    @Autowired
    @Qualifier("flowRuleNacosPublisher")
    private DynamicRulePublisher<List<FlowRuleEntity>> rulePublisher;

image.png
  1. 修改src/main/webapp/resources/app/scripts/directives/sidebar/sidebar.html
    開啟流控規(guī)則v1盏档,這個(gè)目錄下編輯限流規(guī)則會(huì)同步到Nacos
          <li ui-sref-active="active" ng-if="entry.appType==0">
            <a ui-sref="dashboard.flow({app: entry.app})">
              <i class="glyphicon glyphicon-filter"></i>&nbsp;&nbsp;流控規(guī)則 V1</a>
          </li>
image.png
  1. 修改src/main/resources/application.properties 端口號為8888凶掰,默認(rèn)為8080
server.port=8888
  1. 啟動(dòng)com.alibaba.csp.sentinel.dashboard.DashboardApplication#main
    image.png
修改spring-boot-web項(xiàng)目配置
  1. pom引入sentinel相關(guān)jar
        <!-- 限流器 -->
        <dependency>
            <groupId>com.alibaba.cloud</groupId>
            <artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
        </dependency>
        <!-- 限流器配置 引入之后使用nacos作為sentinel配置中心 -->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-datasource-nacos</artifactId>
        </dependency>
  1. 修改配置文件application.yml,增加sentinel配置妆丘,默認(rèn)會(huì)自動(dòng)掃描web資源锄俄;注意data-id一定要以-flow-rules為結(jié)尾、group-id為SENTINEL_GROUP勺拣,因?yàn)閟entinel管理后臺(tái)就是這種命名規(guī)范奶赠,可以去源碼中修改
spring:
    sentinel:
      transport:
        dashboard: localhost:8888
        log:
          dir: ${logging.file.path}/sentinel/
      datasource:
        ds:
          nacos:
            server-addr: localhost:8848
            data-id: ${spring.application.name}-flow-rules
            group-id: SENTINEL_GROUP
            rule-type: flow
  1. 啟動(dòng)web項(xiàng)目
    這里需要請求一下web項(xiàng)目的接口,Sentinel的后臺(tái)就會(huì)開始收集web項(xiàng)目的資源信息药有。這里注意毅戈,他會(huì)自動(dòng)收集所有資源路徑苹丸,將其定義為他的資源


    image.png
配置限流規(guī)則
  1. 查看Sentinel后臺(tái)


    image.png
  2. 在流控規(guī)則V1中配置規(guī)則


    image.png
  3. 第5步添加的流控規(guī)則會(huì)使用Nacos存儲(chǔ),所以我們可以在Nacos配置后臺(tái)看到


    image.png

    image.png
  4. qps設(shè)置為1苇经,我們連點(diǎn)接口請求赘理,就會(huì)看到被攔截


    image.png

Sentinel集成Dubbo

我們的項(xiàng)目使用Dubbo作為RPC框架,Sentinel提供了非常便捷的繼承方式扇单。
參見文檔:Sentinel主流框架適配

如果要對Dubbo接口做限流控制商模,需要添加一個(gè)Sentinel-Dubbo的適配器。

        <!-- 限流器+Dubbo 引入之后會(huì)掃描Dubbo接口作為資源 -->
        <dependency>
            <groupId>com.alibaba.csp</groupId>
            <artifactId>sentinel-apache-dubbo-adapter</artifactId>
        </dependency>

并且同樣的配置sentinel參數(shù)蜘澜。
啟動(dòng)項(xiàng)目施流,并訪問一次之后,控制臺(tái)開始收集Dubbo接口鄙信。


image.png

刪除web接口流控瞪醋,增加Dubbo接口流控規(guī)則


image.png

可以看到接口拋出了500異常


image.png
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市装诡,隨后出現(xiàn)的幾起案子银受,更是在濱河造成了極大的恐慌,老刑警劉巖鸦采,帶你破解...
    沈念sama閱讀 212,185評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件宾巍,死亡現(xiàn)場離奇詭異,居然都是意外死亡赖淤,警方通過查閱死者的電腦和手機(jī)蜀漆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,445評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來咱旱,“玉大人确丢,你說我怎么就攤上這事⊥孪蓿” “怎么了鲜侥?”我有些...
    開封第一講書人閱讀 157,684評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長诸典。 經(jīng)常有香客問我描函,道長,這世上最難降的妖魔是什么狐粱? 我笑而不...
    開封第一講書人閱讀 56,564評論 1 284
  • 正文 為了忘掉前任舀寓,我火速辦了婚禮,結(jié)果婚禮上肌蜻,老公的妹妹穿的比我還像新娘互墓。我一直安慰自己,他們只是感情好篡撵,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,681評論 6 386
  • 文/花漫 我一把揭開白布券盅。 她就那樣靜靜地躺著,像睡著了一般膛檀。 火紅的嫁衣襯著肌膚如雪锰镀。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,874評論 1 290
  • 那天宿刮,我揣著相機(jī)與錄音互站,去河邊找鬼。 笑死僵缺,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的踩叭。 我是一名探鬼主播磕潮,決...
    沈念sama閱讀 39,025評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼自脯,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了斤富?” 一聲冷哼從身側(cè)響起膏潮,我...
    開封第一講書人閱讀 37,761評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎焕参,沒想到半個(gè)月后叠纷,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,217評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡潦嘶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,545評論 2 327
  • 正文 我和宋清朗相戀三年涩嚣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掂僵。...
    茶點(diǎn)故事閱讀 38,694評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡航厚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出锰蓬,到底是詐尸還是另有隱情幔睬,我是刑警寧澤,帶...
    沈念sama閱讀 34,351評論 4 332
  • 正文 年R本政府宣布互妓,位于F島的核電站溪窒,受9級特大地震影響坤塞,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜澈蚌,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,988評論 3 315
  • 文/蒙蒙 一摹芙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宛瞄,春花似錦浮禾、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,778評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至杯活,卻和暖如春匆帚,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背旁钧。 一陣腳步聲響...
    開封第一講書人閱讀 32,007評論 1 266
  • 我被黑心中介騙來泰國打工吸重, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人歪今。 一個(gè)月前我還...
    沈念sama閱讀 46,427評論 2 360
  • 正文 我出身青樓嚎幸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親寄猩。 傳聞我的和親對象是個(gè)殘疾皇子嫉晶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,580評論 2 349

推薦閱讀更多精彩內(nèi)容