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

表格做网站浙江省网站域名备案

表格做网站,浙江省网站域名备案,快速建设网站视频,统计局网站集约化建设方案持续学习持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【29】Sentinel 简介熔断降级什么是熔断什么是降级相同点不同点 整合Sentinel自定义sentinel流控返回数据使用Sentinel来保护feign远程调用自定义资源给网关整合Sentinel参考 简介 熔断降… 持续学习持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【29】Sentinel 简介熔断降级什么是熔断什么是降级相同点不同点 整合Sentinel自定义sentinel流控返回数据使用Sentinel来保护feign远程调用自定义资源给网关整合Sentinel参考 简介 熔断降级 什么是熔断 A 服务调用 B 服务的某个功能由于网络不稳定问题或者 B 服务卡机导致功能时间超长。 如果这样子的次数太多。我们就可以直接将 B 断路了A 不再请求 B 接口凡是调用 B 的直接返回降级数据不必等待 B 的超长执行。 这样 B 的故障问题就不会级联影响到 A。 什么是降级 整个网站处于流量高峰期服务器压力剧增根据当前业务情况及流量对一些服务和页面进行有策略的降级停止服务所有的调用直接返回降级数据。 缓解服务器资源的的压力保证核心业务的正常运行保持了大部分客户得到正确的响应。 相同点 为了保证集群大部分服务的可用性和可靠性防止崩溃牺牲小我成就全局用户最终都是体验到某个功能不可用 不同点 熔断是被调用方故障触发的系统主动规则降级是基于全局考虑停止一些正常服务释放资源 整合Sentinel https://sentinelguard.io/zh-cn/docs/quick-start.html 导入依赖 spring-cloud-starter-alibaba-sentinel dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId/dependency下载sentinel的控制台直接在命令行启动sentinel-dashboard-1.6.3.jar这是Sentinel的控制台用户名密码是sentinel默认是8080端口如果该端口被占用使用java -jar sentinel-dashboard-1.6.3.jar --server.portxxxx启动 配置sentinel控制台地址信息 spring.cloud.sentinel.transport.dashboardlocalhost:8080 spring.cloud.sentinel.transport.port8719 【默认可以不用配】Sentinel默认对SpringCloud进行了适配每个请求默认就是一个资源访问Controller的请求接口后就可以在Sentinel的控制台看到簇点链路了 建议给每一个微服务都导入spring-boot-starter-actuator 并配合management.endpoints.web.exposure.include*就可以在控制台看到Sentinel的实时监控了 自定义sentinel流控返回数据 Configuration public class MySentinelConfig {public MySentinelConfig() {WebCallbackManager.setUrlBlockHandler(new UrlBlockHandler() {Overridepublic void blocked(HttpServletRequest request, HttpServletResponse response, BlockException ex) throws IOException {R error R.error(BizCodeEnume.TOO_MANY_REQUEST.getCode(), BizCodeEnume.TOO_MANY_REQUEST.getMsg());response.setCharacterEncoding(UTF-8);response.setContentType(application/json);response.getWriter().write(JSON.toJSONString(error));}});} }使用Sentinel来保护feign远程调用 调用方 feign.sentinel.enabledtrueSlf4j Component public class SeckillFeignServiceFallBack implements SeckillFeignService {Overridepublic R getSkuSeckillInfo(Long skuId) {log.info(熔断方法调用...getSkuSeckillInfo);return R.error(BizCodeEnume.TOO_MANY_REQUEST.getCode(),BizCodeEnume.TOO_MANY_REQUEST.getMsg());} }FeignClient(value gulimall-seckill, fallback SeckillFeignServiceFallBack.class) public interface SeckillFeignService {GetMapping(/sku/seckill/{skuId})R getSkuSeckillInfo(PathVariable(skuId) Long skuId); }远程服务当然也可以自己配置自己的流控/降级规则 自定义资源 无论是方式1还是2一定要配置好被限流以后的返回内容方式1 方式2 public ListSecKillSkuRedisTo blockHandler(BlockException e) {log.error(getCurrentSeckillSkusResource被限流了..);return null;}//返回当前时间可以参与的秒杀商品信息/*** blockHandler 函数会在原方法被限流/降级/系统保护的时候调用而 fallback 函数会针对所有类型的异常。*/SentinelResource(value getCurrentSeckillSkusResource, blockHandler blockHandler/*, fallback getCurrentSeckillSkusFallback*/)Overridepublic ListSecKillSkuRedisTo getCurrentSeckillSkus() {//1、确定当前时间属于哪个秒杀场次。long time new Date().getTime();// try (Entry entry SphU.entry(resourceName)) {SetString keys redisTemplate.keys(SESSIONS_CACHE_PREFIX *);for (String key : keys) {//seckill:sessions:1582250400000_1582254000000String replace key.replace(SESSIONS_CACHE_PREFIX, );String[] s replace.split(_);Long start Long.parseLong(s[0]);Long end Long.parseLong(s[1]);if (time start time end) {//2、获取这个秒杀场次需要的所有商品信息ListString range redisTemplate.opsForList().range(key, -1000, 1000);BoundHashOperationsString, String, String hashOps redisTemplate.boundHashOps(SKUKILL_CACHE_PREFIX);ListString list hashOps.multiGet(range);if (list ! null) {ListSecKillSkuRedisTo collect list.stream().map(item - {SecKillSkuRedisTo redis JSON.parseObject((String) item, SecKillSkuRedisTo.class); // redis.setRandomCode(null); 当前秒杀开始就需要随机码return redis;}).collect(Collectors.toList());return collect;}break;}} // } catch (BlockException e) { // log.error(资源被限流,{}, e.getMessage()); // }return null;}给网关整合Sentinel 使用sentinel-dashboard-1.7.1.jar这个控制台 dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId /dependency!-- https://mvnrepository.com/artifact/com.alibaba.csp/sentinel-spring-cloud-gateway-adapter -- dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-alibaba-sentinel-gateway/artifactIdversion2.1.0.RELEASE/version /dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-actuator/artifactId /dependencyspring.cloud.sentinel.transport.dashboardlocalhost:8080 management.endpoints.web.exposure.include*spring.cloud.sentinel.scg.fallback.content-typeapplication/jsonConfiguration public class SentinelGatewayConfig {//TODO 响应式编程//GatewayCallbackManagerpublic SentinelGatewayConfig(){GatewayCallbackManager.setBlockHandler(new BlockRequestHandler(){//网关限流了请求就会调用此回调 Mono FluxOverridepublic MonoServerResponse handleRequest(ServerWebExchange exchange, Throwable t) {R error R.error(BizCodeEnume.TOO_MANY_REQUEST.getCode(), BizCodeEnume.TOO_MANY_REQUEST.getMsg());String errJson JSON.toJSONString(error); // MonoString aaa Mono.just(aaa);MonoServerResponse body ServerResponse.ok().body(Mono.just(errJson), String.class);return body;}});// FlowRule flowRule new FlowRule(); // flowRule.setRefResource(gulimall_seckill_route);flowRule.set // FlowRuleManager.loadRules(Arrays.asList(flowRule));} }参考 雷丰阳: Java项目《谷粒商城》Java架构师 | 微服务 | 大型电商项目. 本文完感谢您的关注支持
http://www.yayakq.cn/news/2966/

相关文章:

  • 欧卡乐网站建设湖南微信网站
  • 做vr效果图的网站新品发布会发言稿
  • 建设工程j教育网站淘宝网页设计尺寸
  • 十万pv的网站建设有货 那样的网站怎么做
  • 如何构建一个成交型网站开源知识管理系统
  • 个人在网站怎么做公益免费空间主机
  • 最新新闻热点事件50字营销导向的企业网站优化
  • 广州天河建网站的公司苏州市网站建设服务
  • 网站建设与维护工作待遇网页设计尺寸一般多少像素
  • 梅州做网站wlwl房产中介网站
  • 手机网站怎么做淘宝客国外做装修设计网站
  • 商城网站怎么做推广方案郑州营销型网站公司电话
  • 苏州做网站好的公司平台型网站建设预算表
  • 站长工具端口查询郑州银行app
  • 网站基建建设怎么用优盘做网站登录密钥
  • 专业做曝光引流网站高端人才招聘网站排名
  • 静态网站建设教程建设一个企业网站多少钱
  • 网站开发过程在线学习平台网站建设有什么功能
  • 网站审批需要什么手续辽宁城建设计院有限公司网站
  • 吴江建网站wordpress 标签插件
  • 天晴创艺网站建设百度小程序佛山网站优化步骤
  • win7可以做网站吗设计师之家
  • 广州网站建设多少钱广东省阳江网络问政平台
  • 青岛网站建设公司招聘上海环球金融中心简笔画
  • 用kid做教育网站域名商丘至开网络科技有限公司
  • 将网站保存怎么做lol怎么做直播网站
  • 福建设计招聘网站做微信公众号的网站吗
  • 两学一做 山西答题网站茌平网站制作
  • 兰州做网站怎么样wordpress怎样修改页脚版权信息
  • 上海虹桥站福州关键词自然排名