wordpress自带配置邮箱,wordpress访问优化插件,东莞网站忧化,中国式现代化是自主产权文章目录 1.基本介绍1.Sentinel是什么2.Sentinel主要特性3.Sentinel核心功能1.流量控制2.熔断降级3.消息削峰填谷 4.Sentinel两个组成部分 2.Sentinel控制台显示1.需求分析2.下载3.运行1.进入cmd2.输入java -jar sentinel-dashboard-1.8.0.jar3.查看默认端口8080 4.访问1.账号和… 文章目录 1.基本介绍1.Sentinel是什么2.Sentinel主要特性3.Sentinel核心功能1.流量控制2.熔断降级3.消息削峰填谷 4.Sentinel两个组成部分 2.Sentinel控制台显示1.需求分析2.下载3.运行1.进入cmd2.输入java -jar sentinel-dashboard-1.8.0.jar3.查看默认端口8080 4.访问1.账号和密码都是sentinel2.登录成功3.退出就在cmd输入ctrl c 5.切换端口1.在启动时携带端口参数 --server.port8081端口最大655352.演示3.netstat -anb | more 查看端口监听情况空格显示更多 3.Sentinel监听指定微服务1.示意图在10004模块配置2.pom.xml引入Sentinel3.application.yml 配置sentinel与服务端通信4.测试1.启动Nacos启不启动都可以和Sentinel2.启动10004微服务3.nacos查看注册情况4.浏览器输入 http://localhost:10004/member/get/15.http://localhost:8080 查看Sentinel实时监控 5.QPS和Sentinel懒加载 4.Sentinel 流量控制介绍 QPS实例1.配置界面2.基本介绍3.流量控制实例-QPS1.需求分析2.找到/member/get/1的流量控制界面3.选择QPS单机阈值设置成14.可以查看流控规则5.点击编辑即可修改 4.测试1.步骤2.浏览器快速访问http://localhost:10004/member/get/1可以看到被限流了 5.流控规则实时生效原因6.携带参数方式进行限流1.方式一修改/member/get/{id} 为/member/get使用请求参数的形式获取值限流规则修改为/member/get1.代码2.修改限流规则3.测试使用id2也会被限流 2.方式二使用URL资源清洗1.基本介绍2.com/sun/springcloud/controller/CustomerUrlCleaner.java 将URL进行资源清洗3.修改限流规则4.访问测试成功限流 7.注意事项Sentinel的流控规则默认没有持久化只要重启调用API所在模块就没了 5.Sentinel 流量控制—线程数1.需求分析2.修改流控规则3.浏览器输入http://localhost:10004/member/get/1 并快速刷新4.为了看到效果让线程休眠一秒5.重启10004模块需要重新配置限流规则快速发送请求 6.Sentinel 流量控制—关联1.需求分析2.com/sun/springcloud/controller/MemberController.java 添加两个接口为t1和t23.配置t1的限流规则为关联t24.postman模拟高并发测试1.测试请求t22.点击save3.New Collection4.命名后创建5.点击集合右边三个点然后Run collection6.选择迭代次数和间隔毫秒数然后Run test7.浏览器输入 http://localhost:10004/t1 发现被限流 7.Sentinel 流量控制—Warm up1.基本介绍2.需求分析3.具体配置1.启动Sentinel2.启动Nacos3.启动10004微服务成功注册4.浏览器先输入 http://localhost:10004/t2 然后查看Sentinel控制台5.修改流控规则6.测试前三秒的QPS为9 / 3 3三秒后的QPS为9 8.Sentinel 流量控制—排队等待1.基本介绍2.需求分析3.具体配置 1.基本介绍
1.Sentinel是什么 2.Sentinel主要特性 3.Sentinel核心功能
1.流量控制 2.熔断降级 3.消息削峰填谷 4.Sentinel两个组成部分 2.Sentinel控制台显示
1.需求分析 2.下载 3.运行
1.进入cmd
2.输入java -jar sentinel-dashboard-1.8.0.jar 3.查看默认端口8080 4.访问
1.账号和密码都是sentinel 2.登录成功 3.退出就在cmd输入ctrl c
5.切换端口
1.在启动时携带端口参数 --server.port8081端口最大65535
2.演示 3.netstat -anb | more 查看端口监听情况空格显示更多 3.Sentinel监听指定微服务
1.示意图在10004模块配置 2.pom.xml引入Sentinel !-- 引入sentinel --dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId/dependency3.application.yml 配置sentinel与服务端通信
注意这里与sentinel相关的就只有配置sentinel的部分这里开启的port是在本机上进行监听作为客户端与sentinel的服务端进行通信并且如果8719端口被占用则会自动将端口号加一直到找到可用的端口
server:port: 10004 # 配置服务端口
spring:application:name: member-service-nacos-provider # 配置服务的名称名字任意这里与项目
# 配置naocscloud:nacos:discovery:server-addr: localhost:8848 # 配置nacos的地址
# 配置sentinelsentinel:transport:dashboard: localhost:8080 # 配置sentinel的地址port: 8719 # 配置sentinel的端口当端口冲突时会自动1直到找到可用端口
# 暴露所有的监控点
management:endpoints:web:exposure:include: *
mybatis:mapper-locations: classpath:mapper/*.xml # 扫描所有Mapper.xmltype-aliases-package: com.sun.springcloud.entity # 扫描所有实体类可以直接使用类名来标识
4.测试
1.启动Nacos启不启动都可以和Sentinel 2.启动10004微服务 3.nacos查看注册情况 4.浏览器输入 http://localhost:10004/member/get/1 5.http://localhost:8080 查看Sentinel实时监控
注意这个实时监控只要一段时间不访问数据就会暂时消失 5.QPS和Sentinel懒加载 4.Sentinel 流量控制介绍 QPS实例
1.配置界面 2.基本介绍 3.流量控制实例-QPS
1.需求分析 2.找到/member/get/1的流量控制界面 3.选择QPS单机阈值设置成1 4.可以查看流控规则 5.点击编辑即可修改 4.测试
1.步骤 2.浏览器快速访问http://localhost:10004/member/get/1可以看到被限流了 5.流控规则实时生效原因 6.携带参数方式进行限流
1.方式一修改/member/get/{id} 为/member/get使用请求参数的形式获取值限流规则修改为/member/get
1.代码 /*** 根据id来获取某个会员的信息** param id 使用请求参数的形式传入参数* return 返回json格式的数据*/GetMapping(/member/get) // 这里修改成请求参数的形式public Result getMemberById(RequestParam(id) Long id) {Member member memberService.queryMemberById(id);if (member ! null) {return Result.success(查询成功member-service-nacos-provider-10004, member);} else {return Result.error(402, ID id 不存在);}}2.修改限流规则 3.测试使用id2也会被限流 2.方式二使用URL资源清洗
1.基本介绍 2.com/sun/springcloud/controller/CustomerUrlCleaner.java 将URL进行资源清洗 注意这里的资源清洗只是表示返回给Sentinel的URL改变了
package com.sun.springcloud.controller;import com.alibaba.csp.sentinel.adapter.servlet.callback.UrlCleaner;
import org.apache.commons.lang.StringUtils;
import org.springframework.stereotype.Component;/*** Description: URL资源清洗** Author sun* Create 2024/3/28 16:17* Version 1.0*/
Component // 注入到spring容器中
public class CustomerUrlCleaner implements UrlCleaner {Overridepublic String clean(String originUrl) {// 判断是否为空if (StringUtils.isBlank(originUrl)) {return originUrl;}// 如果是/member/get开头的url就将其清洗为/member/get/*if (originUrl.startsWith(/member/get)) {return /member/get/*;}return originUrl;}
}
3.修改限流规则 4.访问测试成功限流 7.注意事项Sentinel的流控规则默认没有持久化只要重启调用API所在模块就没了
5.Sentinel 流量控制—线程数
1.需求分析
一次请求就是一个线程 2.修改流控规则 3.浏览器输入http://localhost:10004/member/get/1 并快速刷新
这里并没有被限流原因是第一次请求开启了一个工作线程在第二次请求到达之前上一个工作线程已经关闭 4.为了看到效果让线程休眠一秒 5.重启10004模块需要重新配置限流规则快速发送请求
成功限流 6.Sentinel 流量控制—关联
1.需求分析
简单来说就是t1关联t2当t2的QPS超过1则t1被限流 2.com/sun/springcloud/controller/MemberController.java 添加两个接口为t1和t2 // 编写两个测试的接口路由分别为t1和t2GetMapping(/t1)public String t1() {return t1;}GetMapping(/t2)public String t2() {return t2;}3.配置t1的限流规则为关联t2 4.postman模拟高并发测试
1.测试请求t2 2.点击save 3.New Collection 4.命名后创建 5.点击集合右边三个点然后Run collection 6.选择迭代次数和间隔毫秒数然后Run test 7.浏览器输入 http://localhost:10004/t1 发现被限流 7.Sentinel 流量控制—Warm up
1.基本介绍 2.需求分析
简单来说假如最终要到达的QPS为90设置的预热时间为3s则在3s内QPS只能为90/330而在3s后QPS逐渐增加直到为90 3.具体配置
1.启动Sentinel 2.启动Nacos 3.启动10004微服务成功注册 4.浏览器先输入 http://localhost:10004/t2 然后查看Sentinel控制台 5.修改流控规则 6.测试
前三秒的QPS为9 / 3 3三秒后的QPS为9 8.Sentinel 流量控制—排队等待
1.基本介绍
排队等待策略只有在超过了QPS的情况下才会生效也就是假如设置的QPS为1就表示1s只能处理一个请求一旦1s内有两个请求那么第二个请求就会进行排队等待当第一个请求完成之后才会处理第二个请求。
关于设置的超时时间表示等待的时间一旦超过了这个时间就会被限流
需要注意的是如果想要启动排队等待的流控策略则阈值类型就必须要是QPS
2.需求分析 3.具体配置
这样配置就表示1s内只能有一个请求如果有第二个就会进行排队等待直到第一个请求处理完一旦等待时间超过1s就会被限流