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

网站开发的文献网站外贸推广

网站开发的文献,网站外贸推广,企业邮箱登录入口,968深圳网站建设公司#x1f44f;作者简介#xff1a;大家好#xff0c;我是爱吃芝士的土豆倪#xff0c;24届校招生Java选手#xff0c;很高兴认识大家#x1f4d5;系列专栏#xff1a;Spring源码、JUC源码、Kafka原理、分布式技术原理#x1f525;如果感觉博主的文章还不错的话#xff… 作者简介大家好我是爱吃芝士的土豆倪24届校招生Java选手很高兴认识大家系列专栏Spring源码、JUC源码、Kafka原理、分布式技术原理如果感觉博主的文章还不错的话请三连支持一下博主哦博主正在努力完成2023计划中源码溯源一探究竟联系方式nhs19990716加我进群大家一起学习一起进步一起对抗互联网寒冬 文章目录 限流的作用限流的算法计数器滑动窗口漏桶令牌桶 限流的实现Sentinel服务熔断demoSentinel中的流量控制 对于后端来说我们需要提供一些接口去进行交互比如登陆注册支付下单等这样的一些功能所以我们需要搭建一个整体的架构早期的话可能没那么复杂就是通过ssm框架组成的架构然后通过部署tomcat来提供一个端口随着整个并发量上去之后我们需要去提供高性能的服务。 当我们的客户端用户量的访问大了之后对于后端系统的并发量会更高并发量越高对于后端整个处理的能力就是一个挑战因为我们需要保证用户从10个到10000个的时候我们需要提供给用户的是 它的响应时间不能超过多少。因为用户的操作是存在一个心理预期的这就是所谓的用户体验。其次就是系统是否能够支撑这么大的量是否会挂掉挂掉之后网站无法提供对外服务的情况下你无法产生商业价值。 比如说双十一零点的时候那一瞬间瞬时的流量一定会大于正常时间的吞吐量所以需要采用一定的机制来限流 限流的作用 保护系统避免被瞬时流量冲垮预防恶意请求如果自己公司不提供安全的话可以去买高防的服务器 针对请求进行限制 服务器能支撑的连接数是多少 接口的处理能力QPS/TPS,可以使用Jmeter来测试平均响应时间 资源限制cpu线程池、内存、网络资源 如何控制流量 限流的指标可以容纳的流量、已经容纳的流量、可以接受的流量 阈值基于这个指标 限流的过程通过算法来实现 限流的结果处理策略 限流的算法 计数器 ZookeeperRequestThrottle 限流阀、线程池大小、连接数大小 滑动窗口 实际上发送方和接收方都维护了一个滑动窗口 当发送端发送了一个数据包等到接收端接收到后接收端窗口开始滑动发送端需要等待返回后才能滑动 其限流的核心就是流量只能在这个窗口里面但是在tcp里面其窗口是可以灵活的扩大的其会根据当前网络拥挤的程度来决定窗口大小。 最大只能发送五个阈值超过了就不能发送了 所以说io通信是一个阻塞通信其实就是这样基于数据包处理的结果等到这个数据返回如果数据一直不返回那么这个时候请求是阻塞的。 漏桶 用来控制传输速率的本质上控制的是发送者的速度 流入水滴的速率代表的是请求而滴出水滴的速度代表是处理的请求不管来的请求有多少但是能够处理的请求就这么多。 漏桶算法的特点 水的流出速度是固定的桶的大小也是固定的 令牌桶 其恒定的生成速率决定了并发数假如说我每秒生成10个令牌那么我的qps 就是 10 令牌桶对比漏桶的区别是其能够处理瞬时突发流量而不像漏桶一样流出的速度是固定的。 令牌桶的设计 桶的大小 令牌标记 定时任务生成令牌 提供令牌获取的接口 限流的实现 Semphore 信号量 分布式限流 其大小怎么计算呢通过压测来进行计算 //单机实现 //令牌桶算法RateLimiter rateLimiterRateLimiter.create(10); //TPS10public void doRequest(){if(rateLimiter.tryAcquire()){ //获取令牌System.out.println(success);}else{System.out.println(failed);}} // 令牌桶不需要释放处理完后自动丢弃Sentinel Sentinel 是阿里中间件团队开源的面向分布式服务架构的轻量级高可用流量控制组件主要以流量为切入点从流量控制、熔断降级、系统负载保护等多个维度来帮助用户保护服务的稳定性。 其中对于Sentinel最重要的两个东西 资源需要被保护的东西规则限流的规则/熔断规则 所有的流量经过这个组件后会根据这个规则去控制这个流量来进行处理。 而熔断是一个这样的概念 上图存在很多相互调用的情况里面存在很多服务调用的链路当Service D出现故障会导致G F阻塞间接的又会导致A B阻塞如果特别多的请求阻塞在这里之后会占用特别多的资源内存、服务器、cpu的资源这时候会导致服务器因为大量的资源被占用而导致其他问题。 当出现这种情况的时候会触发一种熔断的方式熔断以后会触发降级。 服务熔断 Sentinel的服务熔断有两种方式基于响应时间的熔断和基于异常比率的熔断。基于响应时间的熔断是根据服务的响应时间来判断是否需要熔断当服务的响应时间超过设定的阈值时触发熔断。基于异常比率的熔断是根据服务的异常比率来判断是否需要熔断当服务的异常比率超过设定的阈值时触发熔断。这两种方式可以根据具体的业务场景和需求来选择使用。 demo public static void main(String[] arg) {initFlowRule(); //初始化限流规则while(true){//ResourceName表示资源,控制访问流量的点/*try(Entry entrySphU.entry(helloWorld)){System.out.println(hello world);}catch (BlockException e){System.out.println(被拒绝);}*/if (SphO.entry(helloWorld)) {System.out.println(Hello World);SphO.exit();// 释放}}}private static void initFlowRule(){ListFlowRule rulesnew ArrayList();FlowRule flowRulenew FlowRule();flowRule.setResource(helloWorld); //针对那个资源设置规则flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS);//QPS或者并发数flowRule.setCount(5); //QPS5rules.add(flowRule);FlowRuleManager.loadRules(rules);}Demo 运行之后我们可以在日志 ~/logs/csp/${appName}-metrics.log.xxx 里看到下面的输出: -timestamp- -date time - -resource- 5表示 通过的请求 block: 被拒绝的请 求 , 1600608724000|2023-09-20 21:32:04|helloWorld|5|6078|5|0|5|0|0|0 1600608725000|2023-09-20 21:32:05|helloWorld|5|32105|5|0|0|0|0|0 1600608726000|2023-09-20 21:32:06|helloWorld|5|41084|5|0|0|0|0|0 1600608727000|2023-09-20 21:32:07|helloWorld|5|72211|5|0|0|0|0|0 1600608728000|2023-09-20 21:32:08|helloWorld|5|60828|5|0|0|0|0|0 1600608729000|2023-09-20 21:32:09|helloWorld|5|41696|5|0|0|0|0|0RestController public class SentinelController {AutowiredTestService testService;GetMapping(/hello/{name})public String sayHello(PathVariable(name) String name){return testService.doTest(name);} }Service public class TestService {SentinelResource(value doTest,blockHandler blockHandler,fallback fallback) //声明限流的资源public String doTest(String name){return hello , name;}public String blockHandler(String name, BlockException e){ //降级限流触发的return 被限流了;}// 降级和限流是不一样的限流可以触发降级降级是因为已经被触发了// 降级是第三方业务调用的时候针对下游的一个返回// 限流是针对当前服务访问的限制// 这两个配置只会调用一个public String fallback(String name){ //降级熔断触发的return 被降级了;}}SpringBootApplication public class SpringbootSentinelApplication {public static void main(String[] args) {initFlowRule();SpringApplication.run(SpringbootSentinelApplication.class, args);}private static void initFlowRule(){ListFlowRule rulesnew ArrayList();FlowRule flowRulenew FlowRule();flowRule.setResource(doTest); //针对那个资源设置规则flowRule.setGrade(RuleConstant.FLOW_GRADE_QPS);//QPS或者并发数flowRule.setCount(5); //QPS5rules.add(flowRule);FlowRuleManager.loadRules(rules);}}Sentinel中的流量控制 维度 规则 资源 不管是通过什么样的方式其核心原理就是监控应用流量的qps或者并发线程数的指标然后去判断这些指标的阈值去对流量进行控制防止瞬时流量高峰导致系统被压垮。 SphU.entry(resourceName) - 正常则通过 被限制抛出 FlowException FlowException extends BlockException 同一个资源也可以创建不同的规则这个主要是通过List rulesnew ArrayList();实现的如果有多个规则会去遍历如果发现那个规则被触发则就执行否则就顺利通过。 一个规则由什么组成 resource 资源count 阈值grade 类型基于QPS 还是 并发线程数limitApp,针对的调用来源.strategy 调用关系限流controlBehavior . (直接拒绝 冷启动匀速排队)
http://www.pierceye.com/news/982169/

相关文章:

  • 网站制作前期所需要准备wordpress邮箱配置文件
  • 网站建设网站排名怎么做赣州专业做网站
  • 吉林电商网站建设价格做网站需要每年都缴费吗
  • 怎样用dede搭建网站域名网址
  • 做网站编辑有前途怎么样才算是一个网站页面
  • 建设鲜花网站前的市场分析网店设计理念
  • 网站建设优化服务公司wordpress非代码方式添加备案号
  • asp网站安装到空间教育网站平面设计
  • 快速设计一个网站网站h标签
  • 怎么做百度联盟网站前端面试题
  • 电子商务网站建设的基本要求wordpress提问
  • 论坛网站制作费用wordpress如何调用html代码
  • 打码兔怎么和网站做接口重庆网站建设找承越
  • 做海报的网站什么编辑器微楼书网站建设
  • 免费建站的网站能做影视网站吗深圳网站建设素材网站
  • 网页中网站设计规划流程wordpress主题
  • 贵阳百度做网站电话培训学校
  • 网站关键词推广哪家好深圳方维网络科技有限公司
  • 美工需要的网站阿里云wordpress托管
  • 医疗行业网站建设怎样在网上建立平台
  • 潍坊网站建设网超之梦做的网站后台修改栏目描述
  • 广西建设厅官网证件查询网站优化对企业有什么好处
  • 哪个网站做外贸的多济南建设信息网官网
  • 制作网站能挣钱企业宣传片策划公司
  • 临沂网站建设模板wordpress添加导航页面
  • 有关wordpress教学的网站商标注册号
  • 常用搜索网站浙江立鹏建设有限公司网站
  • 天津做网站优化的公司番禺商城网站建设
  • 网站建设大熊猫点搜营销型网站头部布局的元素
  • wordpress 网站死机淄博专业网站建设价格