91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

SpringBoot 2.0 + Nacos + Sentinel 流控規則集中存儲

發布時間:2020-05-16 04:33:13 來源:網絡 閱讀:575 作者:wx5d30212829a35 欄目:編程語言

前言

Sentinel 原生版本的規則管理通過API 將規則推送至客戶端并直接更新到內存中,并不能直接用于生產環境。不過官方也提供了一種 Push模式,擴展讀數據源ReadableDataSource,規則中心統一推送,客戶端通過注冊監聽器的方式時刻監聽變化,比如使用 Nacos、Zookeeper 等配置中心。這種方式有更好的實時性和一致性保證。這里我們通過配置 Nacos 來實現流控規則的統一存儲配置。

架構

SpringBoot 2.0 + Nacos + Sentinel 流控規則集中存儲


控制臺推送規則至配置中心,客戶端通過監聽事件從配置中心獲取流控規則。

客戶端配置

pom.xml 引入:

<dependency>
?<groupId>com.alibaba.csp</groupId>
?<artifactId>sentinel-datasource-nacos</artifactId>
?<version>1.6.3</version>
?</dependency>

配置文件:

#?nacos的訪問地址,配置參考?https://blog.52itstyle.vip/archives/4174/?
spring.cloud.sentinel.datasource.ds.nacos.server-addr=47.104.187.19:8848
#nacos中存儲規則的dataId,對于dataId使用了${spring.application.name}變量,這樣可以根據應用名來區分不同的規則配置
spring.cloud.sentinel.datasource.ds.nacos.dataId=${spring.application.name}-flow-rules
#nacos中存儲規則的groupId
spring.cloud.sentinel.datasource.ds.nacos.groupId=SENTINEL_GROUP
#定義存儲的規則類型
spring.cloud.sentinel.datasource.ds.nacos.rule-type=flow

控制臺配置

修改 pom.xml,原來的<scope>test</scope>去掉:

<dependency>
?<groupId>com.alibaba.csp</groupId>
?<artifactId>sentinel-datasource-nacos</artifactId>
</dependency>

把 src/test 下面的包 com.alibaba.csp.sentinel.dashboard.rule.nacos 拷貝到src/main/java 下面。

修改 NacosConfig:

/**
?*?@author?Eric?Zhao
?*?@since?1.4.0
?*/
@Configuration
public?class?NacosConfig?{
?@Value("${nacos.address}")
?private?String?address;
?@Bean
?public?Converter<List<FlowRuleEntity>,?String>?flowRuleEntityEncoder()?{
?return?JSON::toJSONString;
?}
?@Bean
?public?Converter<String,?List<FlowRuleEntity>>?flowRuleEntityDecoder()?{
?return?s?->?JSON.parseArray(s,?FlowRuleEntity.class);
?}
?@Bean
?public?ConfigService?nacosConfigService()?throws?Exception?{
?Properties?properties?=?new?Properties();
?properties.put("serverAddr",address);
?return?ConfigFactory.createConfigService(properties);
?}
}

application.properties 配置引入 Nacos:

#?nacos的訪問地址,配置參考?https://blog.52itstyle.vip/archives/4174/?
nacos.address=47.104.197.19:8848

FlowControllerV2 指定對應的 Bean 開啟 Nacos 適配。

@Autowired
@Qualifier("flowRuleNacosProvider")
private?DynamicRuleProvider<List<FlowRuleEntity>>?ruleProvider;
@Autowired
@Qualifier("flowRuleNacosPublisher")
private?DynamicRulePublisher<List<FlowRuleEntity>>?rulePublisher;

修改sidebar.html頁面, 流控規則路由從 dashboard.flowV1 改成 dashboard.flow

<--?nacos?動態規則配置-->
<li?ui-sref-active="active"?ng-if="!entry.isGateway">
?<a?ui-sref="dashboard.flow({app:?entry.app})">
?<i?class="glyphicon?glyphicon-filter"></i>?流控規則</a>
</li>

如圖所示,界面會多了一個回到單機頁面的按鈕,這里我們新增一個流控規則。

SpringBoot 2.0 + Nacos + Sentinel 流控規則集中存儲


登錄 Nacos 后臺,配置管理->配置列表:

SpringBoot 2.0 + Nacos + Sentinel 流控規則集中存儲


點擊進入配置詳情,配置內容如下:

[{
?"app":?"blog",
?"clusterConfig":?{
?"fallbackToLocalWhenFail":?true,
?"sampleCount":?10,
?"strategy":?0,
?"thresholdType":?0,
?"windowIntervalMs":?1000
?},
?"clusterMode":?false,
?"controlBehavior":?0,
?"count":?2.0,
?"gmtCreate":?1568617671812,
?"gmtModified":?1568622253889,
?"grade":?1,
?"id":?6,
?"ip":?"10.136.168.88",
?"limitApp":?"default",
?"port":?8720,
?"resource":?"blogView",
?"strategy":?0
}]

小結

生產環境下,推送規則正確做法應該是 配置中心控制臺/Sentinel 控制臺 → 配置中心 → Sentinel 數據源 → Sentinel。

案例

https://gitee.com/52itstyle/spring-boot-blog

點擊獲取?附送學習進階架構資料、PDF書籍文檔、面試資料

SpringBoot 2.0 + Nacos + Sentinel 流控規則集中存儲

SpringBoot 2.0 + Nacos + Sentinel 流控規則集中存儲


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

涿鹿县| 辽阳市| 冕宁县| 遂溪县| 漳浦县| 洞口县| 江口县| 成武县| 虞城县| 潍坊市| 凌海市| 阳西县| 平湖市| 武强县| 敦煌市| 咸丰县| 泗水县| 东港市| 澄江县| 资中县| 五大连池市| 扎兰屯市| 平陆县| 商河县| 图木舒克市| 惠州市| 德庆县| 白河县| 海淀区| 克什克腾旗| 长岭县| 玛曲县| 荔浦县| 雅安市| 稷山县| 芒康县| 潼南县| 济阳县| 霸州市| 惠来县| 东明县|