Sentinel學習筆記(四)

2021-10-04 13:23:37 字數 3519 閱讀 7004

本文來實現基於nacos推模式的規則持久化。

一、推模式架

tips來自官方。引用自

在生產環境中使用-sentinel

1 原始碼依賴修改和簡單配置修改注釋sentinel-datasource-nacos依賴的使用範圍

<

/dependency>

配置應用啟動埠,登入名密碼(預設都是sentinel

server.port=

8080

csp.sentinel.dashboard.server=localhost:

8080

sentinel.dashboard.auth.username=sentinel

sentinel.dashboard.auth.password=sentinel

server.servlet.session.timeout=

7200

sentinel.dashboard.nacos.server-addr=localhost:

8848

2 移動test/rule下的nacos資料夾到dashboard/rule下

/** * 將規則序列化成json文字,儲存到nacos server中

** @param configservice nacos config service

* @param postfix 規則字尾 eg.nacosconfigutil.flow_data_id_postfix

* @param rules 規則物件

* @throws naco***ception 異常

*/public

static

void

setrulestringtonacos

rules)

throws naco***ception

list

stream()

.map

(rule -

>).

collect

(collectors.

tolist()

);// 儲存,給微服務使用

string dataid =

gendataid

; configservice.

publishconfig

( client_prefix + dataid,

nacosconfigutil.group_id,

jsonutils.

tojsonstring);

// 儲存,給控制台使用

configservice.

publishconfig

( console_prefix + dataid,

nacosconfigutil.group_id,

jsonutils.

tojsonstring

(rules));

}/**

* 從nacos server中查詢響應規則,並將其反序列化成對應ruleentity實體

** @param configservice nacos config service

* @param postfix 規則字尾 eg.nacosconfigutil.flow_data_id_postfix

* @param clazz 類

* @param 泛型

* @return 規則物件列表

* @throws naco***ception 異常

*/public

static

list

getruleentitiesfromnacos

clazz)

throws naco***ception

return jsonutils.

parseobject

(clazz, rules);}

private

static string gendataid

}4 修改flowrulenacospublisher 和 flowrulenacosprovider 原始碼

@component

("flowrulenacospublisher"

)public

class

flowrulenacospublisher

implements

dynamicrulepublisher

>

}

@component

("flowrulenacosprovider"

)public

class

flowrulenacosprovider

implements

dynamicruleprovider

>

}

5 修改controller/v2/flowcontrollerv2注入flowrulenacospublisher 和 flowrulenacosprovider

@autowired

@qualifier

("flowrulenacosprovider"

)private dynamicruleprovider

> ruleprovider;

@autowired

@qualifier

("flowrulenacospublisher"

)private dynamicrulepublisher

> rulepublisher;

新增以下**:

"active"

>

>

="glyphicon glyphicon-filter"

>

<

/i>

流控規則-nacos<

/a>

<

/li>

至此限流規則持久化完成。

這裡持久化到nacos配置中心的每種規則會有兩條,分別對應客戶端和dashboard.歡迎各位大神提出更好的方案

sentinel基本使用學習筆記

新增依賴 com.alibaba.cloudgroupid spring cloud starter alibaba sentinelartifactid dependency sentinelresource value hello blockhandler blockhandlerhello p...

快速學習 sentinel註解支援

從0.1.1 版本開始,sentinel 提供了 sentinelresource註解用於定義資源,並提供了aspectj 的擴充套件用於自動定義資源 處理blockexception 等。使用sentinel annotation aspectj extension的時候需要引入以下依賴 com....

學習筆記(四)

第六章 法律法規 6.1 系統繼承單位資質管理辦法 6.2 專案經理資質管理辦法 6.3 著作權法 6.4 計算機軟體保護條例 6.5 其他相關知識 第七章 軟體工程國家標準 7.1 標準化基礎知識 gb q t z 9000標準族 7.2 基礎標準 gb t 11457 1995 gb 1526 ...