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

公司网站应该怎么做温州网站建设模板下载免费

公司网站应该怎么做,温州网站建设模板下载免费,网站开发团队名字,wordpress申请网站持续学习持续更新中… 守破离 【雷丰阳-谷粒商城 】【分布式高级篇-微服务架构篇】【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.w-s-a.com/news/978332/

相关文章:

  • 网站管理助手3.0做淘宝网站用什么软件做
  • 贵阳做网站的公司wordpress趣味插件
  • 自己设置免费网站设计平台南京哪里有做公司网站的
  • 建设公司内网网站的意义自助建站网站的宣传手册
  • 手机建设中网站建立个人网站服务器
  • 网站开发工程师岗位概要网站怎么制作教程
  • 城乡建设主管部门官方网站公司简介模板ppt范文
  • 网站认证必须做么cc0图片素材网站
  • net域名 著名网站国外设计案例网站
  • 淘宝客网站哪里可以做app地推网
  • 宜昌建设厅网站中国最新时事新闻
  • 微网站怎么开发wordpress 发表评论
  • 山东网站建设是什么一页网站首页图如何做
  • 游戏开发与网站开发哪个难万网影
  • 做网站编程语言建筑施工特种证书查询
  • 找人做网站内容自己编辑吗修改wordpress登陆界面
  • 登陆建设银行wap网站湖南网站建设磐石网络答疑
  • 58网站怎么做浏览度才高论坛网站怎么做排名
  • wordpress 手机网站支付京东网站建设的经费预算
  • 自己怎么样做游戏网站做海外贸易网站
  • 建立什么样的网站好制作网页网站代码
  • 岳麓区专业的建设网站公司尚一网常德论坛
  • 电商网站建设实训报告360站长平台链接提交
  • 个性化网站建设公司个人网站备案类型
  • 腾讯建站模板上海网站开发有限公司
  • 网站和小程序的区别请问做网站怎么赚钱
  • 网站logo设计免费版在线网站开发建设准备工作
  • wordpress多站点 主题南京做网站好的公司
  • 广州 门户seo到底是做什么的
  • 可以登录国外网站吗如何用家用电脑做网站