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

杭州网站设计精选柚v米科技做县城门户网站

杭州网站设计精选柚v米科技,做县城门户网站,建设网站简单吗,即墨网站推广前言#xff1a; 为什么使用Sentinel#xff0c;这是一个高可用组件#xff0c;为了使我们的微服务高可用而生 我们的服务会因为什么被打垮#xff1f; 一#xff0c;流量激增 缓存未预热#xff0c;线程池被占满 #xff0c;无法响应 二#xff0c;被其他服务拖… 前言 为什么使用Sentinel这是一个高可用组件为了使我们的微服务高可用而生 我们的服务会因为什么被打垮 一流量激增    缓存未预热线程池被占满 无法响应 二被其他服务拖垮比如第三方的接口响应慢 三异常没有处理缓存击穿缓存穿透等等 总之而言系统缺乏可用性防护没有容错机制尤其是针对流量的防护会降低服务的可用性 服务雪崩首先是积分系统服务挂掉了一个系统不可用导致整个微服务系统都不可用 限制流量 熔断 服务的降级   A计划--B计划   积分服务就是一个弱依赖和整体的流程关联不大挂掉了也不会影响什么 有很多组件可以让我们进行流控、熔断、及降级从中我们选择了SpringCloudAlibaba为我们提供的Sentinel这个组件作为我们项目中的保证服务高可用的组件。 https://github.com/alibaba/spring-cloud-alibaba/wiki sentinel的说明文档 https://github.com/alibaba/spring-cloud-alibaba/blob/2.2.x/spring-cloud-alibaba-examples/sentinel-example/sentinel-core-example/readme-zh.md sentinel的控制台 https://github.com/alibaba/Sentinel/wiki/%E6%8E%A7%E5%88%B6%E5%8F%B0 先了解一下如何接入 Sentinel dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId /dependency 1. 下载控制台 jar包 https://github.com/alibaba/Sentinel/releases  下载控制台 jar 包。此处下载的是1.8.5 2.启动控制台 Sentinel 控制台是一个标准的 Spring Boot 应用以 Spring Boot 的方式运行 jar 包即可。 java -Dserver.port8080 -Dcsp.sentinel.dashboard.serverlocalhost:8080 -Dproject.namesentinel-dashboard -jar sentinel-dashboard-1.8.5.jar 注意下载的版本的区别不都是1.8.5 启动之后访问ip:8080 user/pwd sentinel/sentinel 在代码端客户端 pom中 dependencygroupIdcom.alibaba.cloud/groupIdartifactIdspring-cloud-starter-alibaba-sentinel/artifactId/dependency/dependencies之后在application.yml文件中主要是spring.cloud.sentinel.transport.dashboard server:port: 8087 spring:application:name: order_nacos-sentinelcloud:nacos:server-addr: 127.0.0.1:8848discovery:username: nacospassword: nacosnamespace: publicsentinel:transport:dashboard: localhost:8080 我们写的服务需要访问一次才能在dashboard中显示 访问了下列地址每个地址一次之后 http://192.168.50.59:8087/order/getStock http://192.168.50.59:8087/order/test1 http://192.168.50.59:8087/order/test2 http://192.168.50.59:8087/order/flow 之后就可以发现 3.流控(直接流控) 1 QPS流控 给getStock设置一个QPS流控 设置为1 我们继续访问http://192.168.50.59:8087/order/getStock连续多点会出现以下 怎么改这个页面呢 指定的blockHandler方法要求 1.必须是public的  2.方法返回值必须和源方法相同 3.方法参数和源方法相同最后一个方法参数是BlockException 继续快速访问 这里出现了一个问题我的程序每次重新启动的时候流控规则都消失了因为现在这些规则是存放在内存中的没有做持久化 2线程数流控 也可以说是并发线程数流控 线程数流控和QPS流控有什么区别呢 以一个为例 qps为1的话代表每秒只允许有一个请求访问 并发线程数为1的话只要有一个线程访问这个线程没有访问结束那么其他线程就不能再次访问测试的时候用睡眠的方式来测试。 RequestMapping(/flow)SentinelResource(value getStock,blockHandler flowBlockException)public String flow(){try {TimeUnit.SECONDS.sleep(5);} catch (InterruptedException e) {throw new RuntimeException(e);}return QPS流控;}public String flowBlockException(BlockException e){return 并发线程数流控;} 如果不想用SentinelResource 那么我们可以写一个类实现BlockExceptionHandler Component Slf4j public class MyBlockException implements BlockExceptionHandler {Overridepublic void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, BlockException e) throws Exception {if(e instanceof BlockException){log.error(被流控了 e.getRule());}else if(e instanceof DegradeException){log.error(被降级了 e.getRule());}httpServletResponse.getWriter().print(e.getRule());// new ObjectMapper().writeValue(httpServletResponse.getWriter(),e.getRule());}流控规则一般在服务的提供方降级规则设置在服务的消费端。 4.关联流控 当关联资源1被设置了以后限流以后限制的不是自己而是资源2的流控 这里会用到Jmeter这个测试工具关于JMeter中文的设置使用之前一定要配置好jdk 性能测试2 测试工具 -- JMeter 安装和中文设置-腾讯云开发者社区-腾讯云 这里多写了一个简单的/add接口 启动测试计划以后访问http://127.0.0.1:8087/order/getStock 访问不了显示被流控了 5.链路流控 想要使用这个功能配置文件中必须设置spring.cloud.sentinel.web-context-unify 这个属性值默认为true表示收敛调用链路的。 spring.cloud.sentinel.web-context-unifyfalse 要说明的是进行流控的资源名不一定是controller中的接口也有可能是service中的方法 controller中 service中 Service Slf4j public class OrderService {SentinelResource(value aa,blockHandler aaBlockException)public String aa(){log.info(测试链路流控...);System.out.println(测试链路流控...);return 测试链路流控...;}public String aaBlockException(BlockException e){log.error(e.getRule() ~~~);return wawawawawwwawa;} }测试的过程中会发现test3接口怎么测试都不会发生变化test4访问速度过快就会显示wawawawawwwawa 6.流量效果 1.快速失败 2.warm up 预热 针对激增流量突然涌入进来打垮冷系统防止缓存击穿。刚开始QPS是阈值/3 经过填写的预热时间增长到阈值 Warm UpRuleConstant.CONTROL_BEHAVIOR_WARM_UP方式即预热/冷启动方式。当系统长期处于低水位的情况下当流量 突然增加时直接把系统拉升到高水位可能瞬间把系统压垮。通过冷启动让通过的流量缓慢增加在一定时间内逐渐 增加到阈值上限给冷系统一个预热的时间避免冷系统被压垮。 冷加载因子: codeFactor 默认是3即请求 QPS 从 threshold / 3 开始经预热时长逐渐升至设定的 QPS 阈值。 3.排队等待 针对脉冲流量 这种方式主要用于处理间隔性突发的流量例如消息队列。想象一下这样的场景在某一秒有大量的请求到来而接下 来的几秒则处于空闲状态我们希望系统能够在接下来的空闲期间逐渐处理这些请求而不是在第一秒直接拒绝多余的 请求。
http://www.hkea.cn/news/14329162/

相关文章:

  • 职友集 一家做公司点评的网站台州营销型网站建设
  • 临沂搜索引擎网站推广网站logo设计创意
  • 高效完成网站建设的步骤峨眉山移动网站建设
  • 信托公司网站建设商家货源网
  • wordpress上不去莱芜网站优化费用
  • 南通网站建设心得网站降权恢复
  • 广州 网站开发 骏域软件开发外包是什么工作
  • 网站建设的流程图示ftp服务器设置网站主页
  • 商城型外贸网站建设宁波h5模板建站
  • 东莞网站公司推广技巧js前端开发
  • 怎样做网站的链接网站建设技术发展现状
  • wordpress登录才能浏览青岛seo服务哪家好
  • 长沙推广引流信息流优化师培训机构
  • 正规网站做菠菜广告网站做行业认证好处
  • 泰安建网站设计类专业笔记本电脑推荐排行
  • 网站目录层级建设大三亚客户端下载
  • 宿州市做网站建设的公司简报格式模板
  • 南昌建站费用新手做外贸怎么学
  • 福建中江建设公司网站高端网站定制商
  • 自己做的网站怎么接入微信专做运动装的网站
  • 网站建设的模块网页设计 公司
  • 一级域名网站怎样收费的南京网站销售
  • 凡科网站怎么做建站福州城乡建设发展总公司官方网站
  • 网站建设佰金手指科杰二八怎样做动漫网站不算侵权
  • 学校html网站模板怎么做网站推广的步骤
  • 代做宝网站做网站需要买什么
  • 张店网站建百度爱采购下载app
  • 网站建设 百度经验宁波seo在线优化方案公司
  • 东莞网站建设0769dt简历在线编辑免费
  • 网站需要服务器吗?十大免费网页游戏