当前位置: 首页 > news >正文

屏蔽ip网站打开网站代码

屏蔽ip网站,打开网站代码,html5网站后台页面设计,四川内江网站建设Sentinel 隔离和降级Feign整合Sentinel线程隔离熔断降级熔断策略 授权规则#xff1a;自定义异常 隔离和降级 虽然限流可以尽量避免因高并发而引起的服务故障#xff0c;但服务还会因为其它原因而故障。而要将这些故障控制在一定范用避免雪崩#xff0c;就要靠线程隔离(舱壁… Sentinel 隔离和降级Feign整合Sentinel线程隔离熔断降级熔断策略 授权规则自定义异常 隔离和降级 虽然限流可以尽量避免因高并发而引起的服务故障但服务还会因为其它原因而故障。而要将这些故障控制在一定范用避免雪崩就要靠线程隔离(舱壁模式)和熔断降级。 Feign整合Sentinel 步骤一修改application.yml文件开启Feign的Sentinel功能 cloud:feign:sentinel:enabled: true步骤二给FeignClient编写失败后的降级逻辑 方式1FallbackClass无法对远程调用的异常做处理 方式2FallbackFactory可以对远程调用的异常做处理 用FallbackFactory举例 第一步 public class UserClientFallbackFactory implements FallbackFactoryUserQuery {Overridepublic UserQuery create(Throwable throwable) {return new UserQuery() {Overridepublic User findById(Long id) {log.error(查询用户失败, throwable);return new User();}};} }第二步 Bean public UserQueryFallbackFactory userQueryFallbackFactory(){return new UserQueryFallbackFactory(); }第三步 FeignClient(value userservice, fallbackFactory UserQueryFallbackFactory.class) public interface UserQuery {GetMapping(/user/{id})User findById(PathVariable(id) Long id); }线程隔离 线程数:是该资源能使用的tomcat线程数的最大值。也就是通过限制线程数量实现舱壁模式。下面图片中就可以直接指定线程数。 线程隔离的两种手段是? 1信号量隔离 2线程池隔离 信号量隔离的特点是? 基于计数器模式简单开销小 线程池隔离的特点是? 基于线程池模式有额外开销但隔离控制更强 熔断降级 熔断降级是解决雪崩问题的重要手段。其思路是由断路器统计服务调用的异常比例、慢请求比例如果超出阈值则会熔断该服务。即拦截访问该服务的一切请求而当服务恢复时断路器会放行访问该服务的请求。其主要分为以下几个状态 熔断策略 断路器熔断策略有三种:慢调用、异常比例、异常数 慢调用:业务的响应时长(RT)大于指定时长的请求认定为慢调用请求。在指定时间内如果请求数量超过设定的最小数量慢调用比例大于设定的阈值则触发熔断。例如: RT超过500ms的调用是慢调用统计最近1000ms内的请求如果请求量超过10次并且慢调用比例不低于0.5则触发熔断熔断时长为5秒。然后进入half-open状态放行一次请求做测试。 异常比例或异常数 异常比例或异常数:统计指定时间内的调用如果调用次数超过指定请求数并且出现异常的比例达到设定的比例阈值(或超过指定异常数)则触发熔断。 统计最近1000ms内的请求如果请求量超过10次并且异常比例不低于0.5则触发熔断熔断时长为5秒。然后进入half-open状态放行一次请求做测试。 授权规则 授权规则可以对调用方的来源做控制有以下两种方式 白名单:来源在白名单内的调用者允许访问 黑名单:来源在黑名单内的调用者不允许访问 Sentinel是通过RequestOriginParser这个接口的parseOrigin来获取请求的来源的 public interface RequestOriginParser { String parseOrigin(HttpServletRequest request);}例如尝试从request中获取一个名为origin的请求头作为origin的值: public class HeaderOriginParser implements RequestOriginParser {Overridepublic String parseOrigin(HttpServletRequest httpServletRequest) {String origin httpServletRequest.getHeader(origin);if(StringUtils.isEmpty(origin)){return black;}return origin;} }还需要在gateway服务中利用网关的过滤器添加名为gateway的origin头: spring:cloud:gateway:default-filters: # 默认过滤器会对所有的路由请求都生效- AddRequestHeaderorigin, gateway # Sentinel授权规则只有从网关服务的才合法通过添加请求头标识自定义异常 默认情况下发生限流、降级、授权拦截时都会抛出异常到调用方。如果要自定义异常时的返回结果需要实现BlockExceptionHandler接口: Component public class SentinelExceptionHandler implements BlockExceptionHandler {Overridepublic void handle(HttpServletRequest request, HttpServletResponse response, BlockException e) throws Exception {String msg 未知异常;int status 429;if (e instanceof FlowException) {msg 请求被限流了;} else if (e instanceof ParamFlowException) {msg 请求被热点参数限流;} else if (e instanceof DegradeException) {msg 请求被降级了;} else if (e instanceof AuthorityException) {msg 没有权限访问;status 401;}response.setContentType(application/json;charsetutf-8);response.setStatus(status);response.getWriter().println({\msg\: msg , \status\: status });} }来源B站黑马学习视频
http://www.yutouwan.com/news/59122/

相关文章:

  • 网站代备案多少钱科技公司网页
  • 怎么做制作网站的教程怎么做云购网站
  • 注册网站需要房产证买衣服网站排名
  • 微网站建设最新报价建设网站制
  • 男人女人做那事网站多语种外贸网站管理系统
  • 网站开发需要学习微信微网站平台
  • 软件网站开发培训怎样给公司做一个网站做推广
  • 网站建设 职位东莞最新招聘信息今天
  • 叫企业做的网站可不可以自己改主题宝塔面板WordPress优化
  • 推荐广州微信网站建设天津公司网站建设公司哪家好
  • 速成网站建设seo代理计费系统
  • 唯拓网站建设房屋设计装修app
  • vs2010c 做网站网站开发 验收移交
  • 自助建立网站网站建设开发人员须知
  • 网站专题报道页面怎么做的快站wordpress
  • 设计师网站兼职ai智能写作平台
  • 网站右键屏蔽网站开发包含网页设计吗
  • 河南省住房和城乡建设厅新网站怎么建立简单网站
  • 静安网站建设哪里有国际军事新闻报道
  • 域名费用和网站服务器费用是同样的吗合肥瑶海区医院
  • 网站原创内容优化能联系做仿瓷的网站
  • 海安网站优化wordpress商城主题手机版
  • 济南网站制作 泉诺黄骅港中铁招聘信息
  • 怎么把网站模板上传到自己的网站seo比较好的公司
  • 一个网站做多访问量自己做网站卖视频
  • 嘉兴哪里可以做淘宝网站wordpress自动更新发布
  • 网络一站式服务平台供求信息平台
  • 开发个网站多少钱郑州seo顾问外包
  • 建站行业该网站尚未备案 腾讯云
  • 成都专业网站设计免费咨询株洲网站搜索优化