山西孝义网站开发,平面设计类网站有哪些,个人备案的网站可以做宣传,北白象镇做公司网站哪里有导航一、什么是Sentinel1.1 Sentinel 的优点二、整合 Sentinel 演示三、Sentinel控制台与微服务通信的原理四、Sentinel 流控演示一、什么是Sentinel Sentinel 是阿里开源的用于提供微服务架构容错方案的组件。它以流量作为切入点#xff0c;从流量控制、熔断降级、系统负载保…
导航一、什么是Sentinel1.1 Sentinel 的优点二、整合 Sentinel 演示三、Sentinel控制台与微服务通信的原理四、Sentinel 流控演示一、什么是Sentinel Sentinel 是阿里开源的用于提供微服务架构容错方案的组件。它以流量作为切入点从流量控制、熔断降级、系统负载保护 这三个主要纬度保证整体服务的稳定性。Sentinel 可分为两部分核心库Java 客户端 和 控制台dashboard。核心库不依赖任何框架或类库运行于所有Java运行时上。控制台基于 Spring Boot 开发打包后可直接运行。
1.1 Sentinel 的优点
丰富的应用场景秒杀、消息削峰填谷、集群流量控制、实时熔断下游。完备的实时监控实时监控功能例如通过控制台可以看到单节点秒级数据甚至是500台服务器以下规模的集群汇总运行情况。开源生态提供开箱即用的可与其他开源框架整合的模块如 Spring Cloud、Dubbo、gRPC 等。SPI 扩展点完善的 SPI 扩展接口方便快速定制规则适配动态数据源等。
二、整合 Sentinel 演示
Sentinel 分为两部分整合 Sentinel 需要在上游微服务中添加相应依赖例如 order 服务调用 product就需要在 order 微服务中加入 sentinel starter。
添加依赖 shop-order 微服务 dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId/dependency添加测试接口
Slf4j
RestController
RequestMapping(/order)
public class OrderController {GetMapping(/message1)public String message1() {return message1;}// ...
}下载 dashboard 控制台 https://github.com/alibaba/Sentinel/wiki/Dashboard 下载后使用如下命令执行jar包
java -Dserver.port8080 -Dcsp.sentinel.dashboard.serverlocalhost:8080 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.2.jar启动成功后打开浏览器访问 localhost:8080 登录名密码都是 sentinel就可以进入sentinel dashboard
将 shop-order 微服务实例接入 sentinel 这一步需要在 配置文件中加入 如下配置
spring:cloud:sentinel:transport:dashboard: localhost:8080 # sentinel dashboard 服务ip和端口地址port:9999 # 与sentinel dashboard 传输数据的端口随意指定一个未使用的端口即可测试 加好配置后启动微服务 shop-order 由于sentinel 是懒加载的必须调用一次接口之后才能显示在控制台。
三、Sentinel控制台与微服务通信的原理
Sentinel 控制台实际上就是一个 Spring boot 项目。我们需要将应用微服务注册到控制台上即在微服务中指定控制台的地址并且还要开启一个跟控制台传递数据的端口。控制台也可以通过此端口调用微服务中的监控程序获取微服务的各种信息。
四、Sentinel 流控演示
简单演示一下 Sentinel 的流控效果。
要求实现对接口 /order/message1 的流控限制每秒访问请求最多2个超出的请求被拦截掉。
打开控制台“流控规则” 设置卡添加流控规则
新增后尝试请求接口 频繁刷新后就会偶尔出现请求被流控调的返回信息证明 sentinel 流控成功。