跳到主要内容

Spring Cloud Alibaba 之 Sentinel DashBoard ;RestTemplate;OpenFeign(九)

一、Sentinel Dashboard通信原理

 

1、 sentinel-transport-simple-http会在客户端主机创建新端口8719;

2、 当端口占用时端口逐次+1,直到可用;

3、 第一次启动sentinel-transport-simple-http会向Dashboard注册;

4、 、STSH默认间隔10秒钟向Dashboard发送心跳包通知健康状态;

5、 http://客户端IP:8719/api对Dashboard暴露API接口供其调用,包括获取监控数据/设置规则/查询配置信息等;

6、 Dashboard与STSH间采用REST风格通信;

注:

因涉及开辟新端口,所以不要忘记在客户端防火墙放行8719/8720等端口

微服务暴露给Sentinel Dashboard的API接口列表

http://localhost:8719/api

[
{
url: "/cnode",
desc: "get clusterNode metrics by id, request param: id={resourceName}"
},
{
url: "/setParamFlowRules",
desc: "Set parameter flow rules, while previous rules will be replaced."
},
{
url: "/origin",
desc: "get origin clusterNode by id, request param: id={resourceName}"
},
{
url: "/cluster/server/flowRules",
desc: "get cluster flow rules"
},
{
url: "/cluster/server/modifyFlowConfig",
desc: "modify cluster server flow config"
},
{
url: "/cluster/server/modifyTransportConfig",
desc: "modify cluster server transport config"
},
{
url: "/basicInfo",
desc: "get sentinel config info"
},
{
url: "/getClusterMode",
desc: "get cluster mode status"
},
{
url: "/cluster/client/modifyConfig",
desc: "modify cluster client config"
},
{
url: "/setClusterMode",
desc: "set cluster mode, accept param: mode={0|1} 0:client mode 1:server mode"
},
{
url: "/getRules",
desc: "get all active rules by type, request param: type={ruleType}"
},
{
url: "/api",
desc: "get all available command handlers"
},
{
url: "/setRules",
desc: "modify the rules, accept param: type={ruleType}&data={ruleJson}"
},
{
url: "/cluster/server/modifyNamespaceSet",
desc: "modify server namespace set"
},
{
url: "/cluster/client/fetchConfig",
desc: "get cluster client config"
},
{
url: "/cluster/server/paramRules",
desc: "get cluster server param flow rules"
},
{
url: "/tree",
desc: "get metrics in tree mode, use id to specify detailed tree root"
},
{
url: "/cluster/server/fetchConfig",
desc: "get cluster server config"
},
{
url: "/version",
desc: "get sentinel version"
},
{
url: "/clusterNode",
desc: "get all clusterNode VO, use type=notZero to ignore those nodes with totalRequest <=0"
},
{
url: "/jsonTree",
desc: "get tree node VO start from root node"
},
{
url: "/getParamFlowRules",
desc: "Get all parameter flow rules"
},
{
url: "/cluster/server/modifyParamRules",
desc: "modify cluster param flow rules"
},
{
url: "/metric",
desc: "get and aggregate metrics, accept param: startTime={startTime}&endTime={endTime}&maxLines={maxLines}&identify={resourceName}"
},
{
url: "/systemStatus",
desc: "get system status"
},
{
url: "/cluster/server/modifyFlowRules",
desc: "modify cluster flow rules"
},
{
url: "/cluster/server/metricList",
desc: "get cluster server metrics"
},
{
url: "/getSwitch",
desc: "get sentinel switch status"
},
{
url: "/setSwitch",
desc: "set sentinel switch, accept param: value={true|false}"
},
{
url: "/clusterNodeById",
desc: "get clusterNode VO by id, request param: id={resourceName}"
},
{
url: "/cluster/server/info",
desc: "get cluster server info"
}
]