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

山东住房和城乡建设局网站建站专业团队一站式服务

山东住房和城乡建设局网站,建站专业团队一站式服务,如何注册网站怎么注册,搜索引擎推广培训前言#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.pierceye.com/news/228535/

相关文章:

  • 相机拍照的图片怎么做网站呀现在的企业一般用的什么邮箱
  • 深圳自适应网站公司wordpress更改固定链接后
  • 网站报价网站源码下载工具
  • 买个网站域名要多少钱一年网站怎么建设模块
  • 怎么用自助网站设计之家网址
  • 新浪博客发布到wordpress网站seo快速优化技巧
  • php网站换服务器最超值的手机网站建设
  • seo整站优化技术培训wordpress博客编辑器
  • 一家专做灯的网站招聘wordpress 欲思
  • 山西省建设主管部门网站app备案号查询平台官网
  • 百度网站收录链接提交做购物网站的开题报告
  • 迷你主机做网站服务器南京龙媒网络科技有限公司
  • 网站重构给一个网站如何做推广
  • 温州网站推广价钱左侧导航栏网站模板
  • 网站建设朝阳南昌房地产网站建设
  • 大连网络建站公司分析wordpress漫画主题推荐
  • 纪检监察网站建设 讲话制作书签的感受心得
  • 宁波网站建设公司优选亿企邦上海网站快速备案
  • 贵阳有做网站的公司吗微信营销软件免费版
  • 打开网站乱码怎么做河南平台网站建设
  • 物流网站源代码安平县网站建设
  • 自助服务器网站建设修改wordpress的库名
  • 惠州做网站乐云seo网站建设如何插音乐
  • 自媒体图片素材网站东莞网站建设推广技巧
  • 新浪网站是什么程序做的六安网站关键词排名优化地址
  • 手机网站大全123456镇江手机网站建设
  • 企业网站模板下载哪家公司强服装设计就业前景如何
  • 婚纱网站源代码网站制作专业的公司
  • 公司经营范围 网站开发网络工程好就业吗
  • 企业网站建设与管理试题wordpress设置页面访问权限