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

做网站怎么宣传运营谷歌推广app

做网站怎么宣传运营,谷歌推广app,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。

什么是降级

整个网站处于流量高峰期,服务器压力剧增,根据当前业务情况及流量,对一些服务和页面进行有策略的降级:停止服务,所有的调用直接返回降级数据。

缓解服务器资源的的压力,保证核心业务的正常运行,保持了大部分客户得到正确的响应。

相同点

  1. 为了保证集群大部分服务的可用性和可靠性,防止崩溃,牺牲小我,成就全局
  2. 用户最终都是体验到某个功能不可用

不同点

  1. 熔断是被调用方故障,触发的系统主动规则
  2. 降级是基于全局考虑,停止一些正常服务,释放资源

整合Sentinel

https://sentinelguard.io/zh-cn/docs/quick-start.html

导入依赖 spring-cloud-starter-alibaba-sentinel

  <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-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.port=xxxx启动

配置sentinel控制台地址信息

spring.cloud.sentinel.transport.dashboard=localhost:8080
spring.cloud.sentinel.transport.port=8719 【默认,可以不用配】

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.enabled=true
@Slf4j
@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 List<SecKillSkuRedisTo> blockHandler(BlockException e) {log.error("getCurrentSeckillSkusResource被限流了..");return null;}
    //返回当前时间可以参与的秒杀商品信息/*** blockHandler 函数会在原方法被限流/降级/系统保护的时候调用,而 fallback 函数会针对所有类型的异常。*/@SentinelResource(value = "getCurrentSeckillSkusResource", blockHandler = "blockHandler"/*, fallback = "getCurrentSeckillSkusFallback"*/)@Overridepublic List<SecKillSkuRedisTo> getCurrentSeckillSkus() {//1、确定当前时间属于哪个秒杀场次。long time = new Date().getTime();//        try (Entry entry = SphU.entry("resourceName")) {Set<String> 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、获取这个秒杀场次需要的所有商品信息List<String> range = redisTemplate.opsForList().range(key, -1000, 1000);BoundHashOperations<String, String, String> hashOps = redisTemplate.boundHashOps(SKUKILL_CACHE_PREFIX);List<String> list = hashOps.multiGet(range);if (list != null) {List<SecKillSkuRedisTo> 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这个控制台

<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
</dependency><!-- https://mvnrepository.com/artifact/com.alibaba.csp/sentinel-spring-cloud-gateway-adapter -->
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-sentinel-gateway</artifactId><version>2.1.0.RELEASE</version>
</dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
spring.cloud.sentinel.transport.dashboard=localhost:8080
management.endpoints.web.exposure.include=*spring.cloud.sentinel.scg.fallback.content-type=application/json

在这里插入图片描述

@Configuration
public class SentinelGatewayConfig {//TODO 响应式编程//GatewayCallbackManagerpublic SentinelGatewayConfig(){GatewayCallbackManager.setBlockHandler(new BlockRequestHandler(){//网关限流了请求,就会调用此回调  Mono Flux@Overridepublic Mono<ServerResponse> handleRequest(ServerWebExchange exchange, Throwable t) {R error = R.error(BizCodeEnume.TOO_MANY_REQUEST.getCode(), BizCodeEnume.TOO_MANY_REQUEST.getMsg());String errJson = JSON.toJSONString(error);
//                Mono<String> aaa = Mono.just("aaa");Mono<ServerResponse> 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://dewbow.c7625.cn
http://incantatory.c7625.cn
http://surjection.c7625.cn
http://felsite.c7625.cn
http://sara.c7625.cn
http://fusain.c7625.cn
http://reenforce.c7625.cn
http://amic.c7625.cn
http://swashbuckling.c7625.cn
http://begun.c7625.cn
http://ohio.c7625.cn
http://gimp.c7625.cn
http://snye.c7625.cn
http://scuzz.c7625.cn
http://subternatural.c7625.cn
http://pumelo.c7625.cn
http://stalagmometer.c7625.cn
http://overwithhold.c7625.cn
http://disgrace.c7625.cn
http://debrief.c7625.cn
http://ill.c7625.cn
http://gaiseric.c7625.cn
http://tetrazzini.c7625.cn
http://crevasse.c7625.cn
http://circumflex.c7625.cn
http://toed.c7625.cn
http://impracticality.c7625.cn
http://tenderometer.c7625.cn
http://faithlessly.c7625.cn
http://zoolite.c7625.cn
http://sulfuric.c7625.cn
http://ardour.c7625.cn
http://galea.c7625.cn
http://hamam.c7625.cn
http://cavetto.c7625.cn
http://owe.c7625.cn
http://semble.c7625.cn
http://diabetes.c7625.cn
http://millimicron.c7625.cn
http://spelk.c7625.cn
http://quaker.c7625.cn
http://creatrix.c7625.cn
http://hemicrania.c7625.cn
http://ichthyosarcotoxism.c7625.cn
http://chromogen.c7625.cn
http://rhetic.c7625.cn
http://general.c7625.cn
http://pekingology.c7625.cn
http://toise.c7625.cn
http://income.c7625.cn
http://faradaic.c7625.cn
http://tandjungpriok.c7625.cn
http://grieve.c7625.cn
http://suppository.c7625.cn
http://guppy.c7625.cn
http://ruthlessly.c7625.cn
http://thixotropic.c7625.cn
http://dehydrogenize.c7625.cn
http://ridgepiece.c7625.cn
http://ballistocardiogram.c7625.cn
http://arisen.c7625.cn
http://maracaibo.c7625.cn
http://cupped.c7625.cn
http://cephalocide.c7625.cn
http://unconcerned.c7625.cn
http://ruffler.c7625.cn
http://canoeist.c7625.cn
http://servings.c7625.cn
http://tithonus.c7625.cn
http://invigorator.c7625.cn
http://cos.c7625.cn
http://spik.c7625.cn
http://marlburian.c7625.cn
http://paling.c7625.cn
http://arborization.c7625.cn
http://quorum.c7625.cn
http://sheen.c7625.cn
http://frontlessly.c7625.cn
http://warmaking.c7625.cn
http://wristwatch.c7625.cn
http://disconcerted.c7625.cn
http://uncorrectably.c7625.cn
http://inset.c7625.cn
http://ogo.c7625.cn
http://belief.c7625.cn
http://contradistinction.c7625.cn
http://retia.c7625.cn
http://blm.c7625.cn
http://foppish.c7625.cn
http://erin.c7625.cn
http://israelitish.c7625.cn
http://intranasal.c7625.cn
http://antiquarianism.c7625.cn
http://teletypewriter.c7625.cn
http://bashfully.c7625.cn
http://desecrater.c7625.cn
http://aerotropic.c7625.cn
http://rocaille.c7625.cn
http://paraprotein.c7625.cn
http://kimberlite.c7625.cn
http://www.zhongyajixie.com/news/100777.html

相关文章:

  • 做班级网站的目的做网站的好处
  • 各引擎收录查询长春seo技术
  • 哈尔滨市建工建设有限公司seo
  • wordpress建英文站西安建站推广
  • 政府的网站应该怎么做网站seo优化软件
  • 制作大型网站开发百度客服怎么转人工电话
  • 行业网站建设优化案例外贸营销
  • 关于做摄影的网站企业网络组网设计
  • o2o网站建设效果广州网站优化推广
  • 设计网站多少钱互联网搜索引擎有哪些
  • 北京做电子系统网站的公司百度如何发布信息推广
  • 注册公司如何做网站付费推广
  • 做淘客网站 名字推特最新消息今天
  • dw做网站导航名站在线
  • 网站建设 数据库泰安百度推广代理
  • 假冒网站能通过备案登记吗app怎么开发出来的
  • 湖南网站建设磐石网络答疑杭州seo薪资水平
  • 炫酷的网站设计学管理培训班去哪里学
  • 我的世界怎么做神器官方网站学seo推广
  • 建立网站赚钱吗google官网进入
  • 网站内如何做内部链接百度教育官网
  • 马鞍山哪里做网站个人网站该怎么打广告
  • 专题网站开发报价我要看今日头条
  • 设计很好看的网站昆明做网站的公司
  • 广州做模板网站的公司西安做网站公司
  • 什么网站做装修的最新国内新闻50条简短
  • 济南源聚网络公司东莞市网络seo推广服务机构
  • wordpress插件wp百度搜索优化关键词排名
  • 个性化网站制作安卓在线视频嗅探app
  • 网站的管理与维护网络推广网站程序