博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Cloud Alibaba 极速通关 | Sentinel 整合 Apollo 实现配置持久化
阅读量:4104 次
发布时间:2019-05-25

本文共 2270 字,大约阅读时间需要 7 分钟。

一、简介

默认情况下,我们在控制台配置的规则并不会持久化,当项目重新启动之后,配置就会删除,这里我们整合 apollo + sentinel 进行配置持久化。

二、实例

1、添加核心依赖
org.springframework.boot
spring-boot-starter-web
org.springframework.cloud
spring-cloud-starter-alibaba-sentinel
com.alibaba.csp
sentinel-datasource-apollo
1.4.1
2、示例代码
@RestControllerpublic class IndexController {
@RequestMapping("/index") public String index() {
return "index"; } @SentinelResource(value = "getIndexConsole",blockHandler = "getOrderQpsEx") @RequestMapping("/getIndexConsole") public String getIndexConsole() {
return "getIndexConsole"; } public String getOrderQpsEx(BlockException e) {
return "接口已经被限流"; }}
3、yml 配置文件
spring:  application:    name: sentinel  cloud:    sentinel:      transport:        dashboard: localhost:8718      eager: true      datasource:        ds:          apollo:            namespace-name: application            flow-rules-key: sentinel.flowRules            rule-type: flowserver:  port: 8889  tomcat:    max-threads: 20app:  id: sentinel  apollo:  meta: http://**.**.*.171:8080/  cacheDir: /app/war/apollo/temp/
4、在 Apollo 配置中心添加配置

Apollo 配置中心创建项目 sentinel并添加以下配置

key

flowRules

val

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

resource 资源名,限流的接口

limitApp 流控针对的调用来源,default 不区分来源
grade 限流阈值类型,0代表根据线程数,1代表根据 Qps
count 限流阈值
strategy 采用策略
controlBehavior 流控效果, (快速失败 Warm Up 排队等待)
clusterMode 是否集群

三、结果测试

1、启动控制台

在这里插入图片描述

2、启动项目

如果 Apollo 部署在 Docker 或者公网,添加启动参数

-Dapollo.configService=http://**.**.*.171:8080

3、在 Apollo 发布配置

Apollo 的配置已经刷新到控制台

在这里插入图片描述

4、访问接口

http://localhost:8889/getIndexConsole

四、代码示例

https://github.com/huangliangyun/alibaba-learning/tree/master/spring-cloud-alibaba

—— 完

看完觉得有用,记得点赞,关注,转发!

ABOUT

公众号:【星尘Pro】

github:

推荐阅读

参考资料

https://github.com/alibaba/Sentinel/wiki/%E5%8A%A8%E6%80%81%E8%A7%84%E5%88%99%E6%89%A9%E5%B1%95

https://github.com/alibaba/spring-cloud-alibaba/wiki/Sentinel
http://blog.didispace.com/spring-cloud-alibaba-sentinel-2-2/

转载地址:http://qyfsi.baihongyu.com/

你可能感兴趣的文章
JavaSE_day14 集合中的Map集合_键值映射关系
查看>>
Day_15JavaSE 异常
查看>>
异常 Java学习Day_15
查看>>
JavaSE_day_03 方法
查看>>
day-03JavaSE_循环
查看>>
Mysql初始化的命令
查看>>
day_21_0817_Mysql
查看>>
day-22 mysql_SQL 结构化查询语言
查看>>
MySQL关键字的些许问题
查看>>
浅谈HTML
查看>>
css基础
查看>>
HTML&CSS进阶
查看>>
Servlet进阶和JSP基础
查看>>
servlet&jsp 的使用以及jsp的历史遗留用法
查看>>
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>
软件(项目)的分层
查看>>
菜单树
查看>>
MySQL-分布式架构-MyCAT
查看>>
设计模式六大原则(6):开闭原则
查看>>