国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

Spring Cloud Alibaba基礎(chǔ)教程:Sentinel使用Apollo存儲(chǔ)規(guī)則

Airmusic / 1159人閱讀

摘要:上一篇我們介紹了如何通過(guò)的配置功能來(lái)存儲(chǔ)限流規(guī)則。第六步啟動(dòng)應(yīng)用。深入思考在使用存儲(chǔ)規(guī)則配置的時(shí)候與存儲(chǔ)一樣,對(duì)于控制臺(tái)這些數(shù)據(jù)是只讀的,也就是說(shuō)控制臺(tái)中修改規(guī)則僅存在于服務(wù)的內(nèi)存中,不會(huì)修改中的配置值,重啟后恢復(fù)原來(lái)的值。

上一篇我們介紹了如何通過(guò)Nacos的配置功能來(lái)存儲(chǔ)限流規(guī)則。Apollo是國(guó)內(nèi)用戶(hù)非常多的配置中心,所以,今天我們繼續(xù)說(shuō)說(shuō)Spring Cloud Alibaba Sentinel中如何將流控規(guī)則存儲(chǔ)在Apollo中。

使用Apollo存儲(chǔ)限流規(guī)則

Sentinel自身就支持了多種不同的數(shù)據(jù)源來(lái)持久化規(guī)則配置,目前包括以下幾種方式:

文件配置

Nacos配置

ZooKeeper配置

Apollo配置

本文我們就來(lái)一起動(dòng)手嘗試一下,如何使用Apollo來(lái)存儲(chǔ)限流規(guī)則。

準(zhǔn)備工作

下面我們將同時(shí)使用到ApolloSentinel Dashboard,所以可以先把ApolloSentinel Dashboard啟動(dòng)起來(lái)。

如果還沒(méi)入門(mén)Sentinel Dashboard可以通過(guò)文末的系列目錄先學(xué)習(xí)之前的內(nèi)容。Apollo的話相對(duì)復(fù)雜一些,這里不做詳細(xì)介紹了,如果還沒(méi)有接觸過(guò)Apollo的讀者可以查看其官方文檔進(jìn)一步學(xué)習(xí)。

應(yīng)用配置

第一步:在Spring Cloud應(yīng)用的pom.xml中引入Spring Cloud Alibaba的Sentinel模塊和Apollo存儲(chǔ)擴(kuò)展:

 
    
        org.springframework.boot
        spring-boot-starter-web
    
    
        org.springframework.cloud
        spring-cloud-starter-alibaba-sentinel
    
    
        com.alibaba.csp
        sentinel-datasource-apollo
        1.4.0
    

第二步:在Spring Cloud應(yīng)用中配置的服務(wù)信息,在resource目錄下,創(chuàng)建apollo-env.properties文件,內(nèi)容樣例:

local.meta=http://192.168.0.201:8080
dev.meta=http://192.168.0.202:8080

這里需要了解Apollo對(duì)多環(huán)境的配置,這里設(shè)置的是每個(gè)環(huán)境不同的配置服務(wù)地址,讀者需要根據(jù)自己的實(shí)際情況修改。

第三步:在Spring Cloud應(yīng)用中添加配置信息:

spring.application.name=sentinel-datasource-apollo
server.port=8002

# apollo config
app.id=${spring.application.name}

# sentinel dashboard
spring.cloud.sentinel.transport.dashboard=localhost:8080

# sentinel datasource apollo
spring.cloud.sentinel.datasource.ds.apollo.namespaceName=application
spring.cloud.sentinel.datasource.ds.apollo.flowRulesKey=sentinel.flowRules

app.id:Apollo中的創(chuàng)建的項(xiàng)目名稱(chēng),這里采用spring.application.name參數(shù)的引用,從而達(dá)到服務(wù)名與配置項(xiàng)目名一致的效果

spring.cloud.sentinel.transport.dashboard:sentinel dashboard的訪問(wèn)地址,根據(jù)上面準(zhǔn)備工作中啟動(dòng)的實(shí)例配置

spring.cloud.sentinel.datasource.ds.apollo.namespaceName:Apollo的空間名

spring.cloud.sentinel.datasource.ds.apollo.flowRulesKey:配置規(guī)則的key名稱(chēng)

關(guān)于Apollo相關(guān)配置的對(duì)應(yīng)關(guān)系可見(jiàn)下圖所示:

第四步:創(chuàng)建應(yīng)用主類(lèi),并提供一個(gè)rest接口,比如:

@EnableApolloConfig
@SpringBootApplication
public class TestApplication {

    public static void main(String[] args) {
        SpringApplication.run(TestApplication.class, args);
    }

    @Slf4j
    @RestController
    static class TestController {

        @GetMapping("/hello")
        public String hello() {
            return "didispace.com";
        }

    }

}

其中@EnableApolloConfig注解是開(kāi)啟Apollo的配置加載功能。

第五步:Apollo中配置限流規(guī)則,具體可見(jiàn)第三步的截圖中的樣子。其中,key值的內(nèi)容是下面的json

[
    {
        "resource": "/hello",
        "limitApp": "default",
        "grade": 1,
        "count": 5,
        "strategy": 0,
        "controlBehavior": 0,
        "clusterMode": false
    }
]

可以看到上面配置規(guī)則是一個(gè)數(shù)組類(lèi)型,數(shù)組中的每個(gè)對(duì)象是針對(duì)每一個(gè)保護(hù)資源的配置對(duì)象,每個(gè)對(duì)象中的屬性解釋如下:

resource:資源名,即限流規(guī)則的作用對(duì)象

limitApp:流控針對(duì)的調(diào)用來(lái)源,若為 default 則不區(qū)分調(diào)用來(lái)源

grade:限流閾值類(lèi)型(QPS 或并發(fā)線程數(shù));0代表根據(jù)并發(fā)數(shù)量來(lái)限流,1代表根據(jù)QPS來(lái)進(jìn)行流量控制

count:限流閾值

strategy:調(diào)用關(guān)系限流策略

controlBehavior:流量控制效果(直接拒絕、Warm Up、勻速排隊(duì))

clusterMode:是否為集群模式

這里我們只做簡(jiǎn)單的配置解釋?zhuān)员阌诶斫膺@里的配置作用。實(shí)際上這里還有非常多可配置選項(xiàng)和規(guī)則,更復(fù)雜的配置后面我們多帶帶開(kāi)一篇來(lái)深入學(xué)習(xí)。

第六步:?jiǎn)?dòng)應(yīng)用。如果一些順利,可以看到類(lèi)似下面的日志,代表已經(jīng)成功從Nacos加載了一條限流規(guī)則:

2019-04-18 23:56:11.278  INFO 29149 --- [           main] o.s.c.a.s.c.SentinelDataSourceHandler    : [Sentinel Starter] DataSource ds-sentinel-apollo-datasource start to loadConfig
2019-04-18 23:56:11.279  INFO 29149 --- [           main] o.s.c.a.s.c.SentinelDataSourceHandler    : [Sentinel Starter] DataSource ds-sentinel-apollo-datasource load 1 FlowRule

通過(guò)postman或者curl訪問(wèn)幾下localhost:8002/hello接口:

$ curl localhost:8002/hello
didispace.com

此時(shí),在Sentinel Dashboard中就可以看到當(dāng)前我們啟動(dòng)的sentinel-datasource-apollo服務(wù)。點(diǎn)擊左側(cè)菜單中的流控規(guī)則,可以看到已經(jīng)存在一條記錄了,這條記錄就是上面我們?cè)贏pollo中配置的限流規(guī)則。

深入思考

在使用Apollo存儲(chǔ)規(guī)則配置的時(shí)候與Nacos存儲(chǔ)一樣,對(duì)于Sentinel控制臺(tái)這些數(shù)據(jù)是只讀的,也就是說(shuō):

Sentinel控制臺(tái)中修改規(guī)則:僅存在于服務(wù)的內(nèi)存中,不會(huì)修改Apollo中的配置值,重啟后恢復(fù)原來(lái)的值。

Nacos控制臺(tái)中修改規(guī)則:服務(wù)的內(nèi)存中規(guī)則會(huì)更新,Apollo中持久化規(guī)則也會(huì)更新,重啟后依然保持。

代碼示例

本文介紹內(nèi)容的客戶(hù)端代碼,示例讀者可以通過(guò)查看下面?zhèn)}庫(kù)中的alibaba-sentinel-datasource-apollo項(xiàng)目:

Github:https://github.com/dyc87112/SpringCloud-Learning/

Gitee:https://gitee.com/didispace/SpringCloud-Learning/

如果您對(duì)這些感興趣,歡迎star、follow、收藏、轉(zhuǎn)發(fā)給予支持!

參考資料

下面是Sentinel的倉(cāng)庫(kù)地址與官方文檔,讀者也可以自己查閱文檔學(xué)習(xí):

Github

Sentinel官方文檔:動(dòng)態(tài)規(guī)則

Spring Cloud Alibaba Sentinel文檔

專(zhuān)題整理

Spring Boot基礎(chǔ)教程

Spring Cloud基礎(chǔ)教程

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/74229.html

相關(guān)文章

  • Sentinel Dashboard中修改規(guī)則同步到Apollo存儲(chǔ)

    摘要:在之前的兩篇教程中我們分別介紹了如何將的限流規(guī)則存儲(chǔ)到和中。本文以存儲(chǔ)為例,下一篇介紹的改在示例。但是由于考慮到與的結(jié)合使用,略作修改。 在之前的兩篇教程中我們分別介紹了如何將Sentinel的限流規(guī)則存儲(chǔ)到Nacos和Apollo中。同時(shí),在文末的思考中,我都指出了這兩套整合方案都存在一個(gè)不足之處:不論采用什么配置中心,限流規(guī)則都只能通過(guò)Nacos界面或Apollo界面來(lái)完成修改才能...

    psychola 評(píng)論0 收藏0
  • Spring Cloud Alibaba基礎(chǔ)教程Sentinel Dashboard中修改規(guī)則同步

    摘要:下面通過(guò)這篇,詳細(xì)介紹當(dāng)使用作為配置中心之后,如何實(shí)現(xiàn)中修改規(guī)則同步到。關(guān)于下面改造的原理和分析可以見(jiàn)上一篇中修改規(guī)則同步到的頭兩節(jié)內(nèi)容,這里不重復(fù)介紹了。但是由于考慮到與的結(jié)合使用,略作修改。主要就是中存儲(chǔ)配置的和不要弄錯(cuò)。 上一篇我們介紹了如何通過(guò)改造Sentinel Dashboard來(lái)實(shí)現(xiàn)修改規(guī)則之后自動(dòng)同步到Apollo。下面通過(guò)這篇,詳細(xì)介紹當(dāng)使用Nacos作為配置中心之后...

    Rocko 評(píng)論0 收藏0
  • Spring Cloud Alibaba基礎(chǔ)教程Sentinel使用Nacos存儲(chǔ)規(guī)則

    摘要:所以,在整合了做規(guī)則存儲(chǔ)之后,需要知道在下面兩個(gè)地方修改存在不同的效果控制臺(tái)中修改規(guī)則僅存在于服務(wù)的內(nèi)存中,不會(huì)修改中的配置值,重啟后恢復(fù)原來(lái)的值。控制臺(tái)中修改規(guī)則服務(wù)的內(nèi)存中規(guī)則會(huì)更新,中持久化規(guī)則也會(huì)更新,重啟后依然保持。 通過(guò)上一篇《使用Sentinel實(shí)現(xiàn)接口限流》的介紹,相信大家對(duì)Sentinel已經(jīng)有了初步的認(rèn)識(shí)。在Spring Cloud Alibaba的整合封裝之下,接...

    xingqiba 評(píng)論0 收藏0
  • Sentinel Dashboard中修改規(guī)則同步到Nacos

    摘要:下面通過(guò)這篇,詳細(xì)介紹當(dāng)使用作為配置中心之后,如何實(shí)現(xiàn)中修改規(guī)則同步到。關(guān)于下面改造的原理和分析可以見(jiàn)上一篇中修改規(guī)則同步到的頭兩節(jié)內(nèi)容,這里不重復(fù)介紹了。方法中的參數(shù)是中的服務(wù)名稱(chēng)。這里的大部分內(nèi)容與上一步中的實(shí)現(xiàn)一致。上一篇我們介紹了如何通過(guò)改造Sentinel Dashboard來(lái)實(shí)現(xiàn)修改規(guī)則之后自動(dòng)同步到Apollo。下面通過(guò)這篇,詳細(xì)介紹當(dāng)使用Nacos作為配置中心之后,如何實(shí)現(xiàn)S...

    ytwman 評(píng)論0 收藏0
  • 公益:開(kāi)放一臺(tái)Nacos服務(wù)端給各位Spring Cloud愛(ài)好者

    摘要:之前開(kāi)放過(guò)一臺(tái)公益給大家,以方便大家在閱讀我博客中教程時(shí)候做實(shí)驗(yàn)。由于目前在連載,所以對(duì)應(yīng)的也部署了一臺(tái),并且也開(kāi)放出來(lái),給大家學(xué)習(xí)測(cè)試之用。 之前開(kāi)放過(guò)一臺(tái)公益Eureka Server給大家,以方便大家在閱讀我博客中教程時(shí)候做實(shí)驗(yàn)。由于目前在連載Spring Cloud Alibaba,所以對(duì)應(yīng)的也部署了一臺(tái)Nacos,并且也開(kāi)放出來(lái),給大家學(xué)習(xí)測(cè)試之用。 Nacos控制臺(tái) ...

    jk_v1 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<