美文网首页
八(二) sentinel本地多实例(伪集群)

八(二) sentinel本地多实例(伪集群)

作者: 所谓伊人在水之湄 | 来源:发表于2021-03-18 11:24 被阅读0次

参考官方文档:https://github.com/alibaba/Sentinel/wiki/%E9%9B%86%E7%BE%A4%E6%B5%81%E6%8E%A7#%E7%A4%BA%E4%BE%8B

参考官方项目:https://github.com/alibaba/Sentinel/tree/master/sentinel-demo/sentinel-demo-cluster

ncaos 参考文档:https://www.bookstack.cn/read/sentinel-v1.7/39e61ead78232553.md

Sentinel 集群限流服务端有两种启动方式:

1,独立模式(Alone),即作为独立的 token server 进程启动,独立部署,隔离性好,但是需要额外的部署操作。独立模式适合作为 Global Rate Limiter 给集群提供流控服务。

2,嵌入模式(Embedded),即作为内置的 token server 与服务在同一进程中启动。在此模式下,集群中各个实例都是对等的,token server 和 client 可以随时进行转变,因此无需单独部署,灵活性比较好。但是隔离性不佳,需要限制 token server 的总 QPS,防止影响应用本身。嵌入模式适合某个应用集群内部的流控。

使用 第三章 nacosa项目,实现嵌入模式

本地启动nacos服务

本地启动sentinel控制台服务

(1)pom

(2)将官方项目sentinel-demo-cluster有用的类拿过来,其中 com.alibaba.csp.sentinel.init.InitFunc 的内容是  DemoClusterInitFunc 类所在的全路径

(3)简单修改DemoClusterInitFunc类,改为Properties 加载nacos里的 配置信息,且信息实时更新

(4)DemoClusterInitFunc类中四个常量

//限流规则

private final StringflowDataId =APP_NAME + DemoConstants.FLOW_POSTFIX;

//限流规则

private final StringparamDataId =APP_NAME + DemoConstants.PARAM_FLOW_POSTFIX;

//client配置

private final StringconfigDataId =APP_NAME +"-cluster-client-config";

//设置token server,client

private final StringclusterMapDataId =APP_NAME + DemoConstants.CLUSTER_MAP_POSTFIX;

(5)在nacos中配置

新增,指定token server

上面截图,不要使用localhost,使用ip

新增,限流配置 修改nacosa项目配置,

(6)启动实例,启动配置项参考 https://www.bookstack.cn/read/sentinel-v1.7/27476bd330878602.md

-Dserver.port=9100

-Dproject.name=nacosa

-Dcsp.sentinel.log.use.pid=true

-Dcsp.sentinel.dashboard.server=localhost:8999

-Dcsp.sentinel.api.port=9101

-Dserver.port=9200

-Dproject.name=nacosa

-Dcsp.sentinel.log.use.pid=true

-Dcsp.sentinel.dashboard.server=localhost:8999

-Dcsp.sentinel.api.port=9201

(7)查看sentinel控制台

(8)访问 http://localhost:9000/nacosa/helloWorld3,返回 Blocked by Sentinel (flow limiting),说明已经生效

(9)本地写一个测试并发类,每秒200个请求,这个时候在查看 sentinel控制台

本地启用了2个nacosa 实例,对source资源 helloWorld3的qps配置是为1,所以通过的最多也就是2。

gateway服务,发现并无拒绝,是因为在gateway服务中,对rousce 资源nacosa 的qps配置比较大

项目地址:https://github.com/renzheyizhe/demo/tree/master/nacos-a

相关文章

网友评论

      本文标题:八(二) sentinel本地多实例(伪集群)

      本文链接:https://www.haomeiwen.com/subject/dauycltx.html