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

网站平台建设需要多少钱网页游戏脚本制作教程

网站平台建设需要多少钱,网页游戏脚本制作教程,wordpress 页面目录,业务网站在线生成负载均衡 概述 负载均衡是指在集群中#xff0c;将多个数据请求分散到不同的单元上执行#xff0c;主要是为了提高系统的容错能力和对数据的处理能力。 Dubbo 负载均衡机制是决定一次服务调用使用哪个提供者的服务。 策略 在Dubbo中提供了7中负载均衡策略#xff0c;默…负载均衡 概述 负载均衡是指在集群中将多个数据请求分散到不同的单元上执行主要是为了提高系统的容错能力和对数据的处理能力。 Dubbo 负载均衡机制是决定一次服务调用使用哪个提供者的服务。 策略 在Dubbo中提供了7中负载均衡策略默认的负载均衡策略是Random默认权重相同 Weighted Random 加权随机按权重设置随机概率。 在一个截面上碰撞的概率高但调用量越大分布越均匀而且按概率使用权重后也比较均匀有利于动态调整提供者权重。 RoundRobin 加权轮询按公约后的权重设置轮询比率循环调用节点。 存在慢的提供者累积请求的问题。 LeastActive 加权最少活跃调用优先活跃数越低越优先调用相同活跃数的进行加权随机。 使慢的提供者收到更少请求因为越慢的提供者的调用前后计数差会越大相对的处理能力越强的节点处理更多的请求。 ShortestResponse 加权最短响应优先在最近一个滑动窗口中响应时间越短越优先调用。相同响应时间的进行加权随机。 使得响应时间越快的提供者处理更多的请求 ConsistentHash 一致性 Hash相同参数的请求总是发到同一提供者。 当某一台提供者挂时原本发往该提供者的请求基于虚拟节点平摊到其它提供者不会引起剧烈变动 P2C Load Balance 1.对于每次调用从可用的provider列表中做两次随机选择选出两个节点providerA和providerB。 2.比较providerA和providerB两个节点选择其“当前正在处理的连接数”较小的那个节点。 Adaptive Load Balance 自适应负载均衡是一种能根据后端实例负载自动调整流量分布的算法实现它总是尝试将请求转发到负载最小的节点 配置 只需要调整 loadbalance 相应取值即可 服务端服务级别 dubbo:service interface... loadbalanceroundrobin / 客户端服务级别 dubbo:reference interface... loadbalanceroundrobin / 服务端方法级别 dubbo:service interface...dubbo:method name... loadbalanceroundrobin/ /dubbo:service 客户端方法级别 dubbo:reference interface...dubbo:method name... loadbalanceroundrobin/ /dubbo:reference 服务降级 当服务器压力剧增的情况下根据当前业务情况及流量对一些服务有策略的降低服务级别以释放服务器资源保证核心任务的正常运行防止分布式服务发生雪崩效应。 雪崩求发生超时一直等待着服务响应那么在高并发情况下很多请求都是因为这样一直等着响应直到服务资源耗尽产生宕机而宕机之后会导致分布式其他服务调用该宕机的服务也会出现资源耗尽宕机这样下去将导致整个分布式服务都瘫痪这就是雪崩。 降级方式 1.部分服务暂停 2.全部服务暂停 3.随机拒绝服务 4.部分服务延迟 实现方式 内置Mock 1.return 接口级别降级接口的所有方法调用降级全部返回null dubbo:reference idorderService interfacecom.harvey.samples.client.OrderService protocoldubbo groupone mockreturn null/ 方法级别降级如果只是想对部分接口降级 !-- 对getOrderInfo方法进行降级其它方法正常调用 -- dubbo:reference idorderService interfacecom.harvey.samples.client.OrderService protocoldubbo groupone     dubbo:method namegetOrderInfo mockreturn null/     !-- 也可以使用dubbo:parameter标签进行配置 --     dubbo:parameter keygetOrderInfo.mock valuereturn null/ /dubbo:reference Mock是在调用发生RpcException异常之后才起作用的如果不是Mock异常将不会用到Mock。对于方法级别的降级仍然需要服务注册到注册中心否则调用时会发生服务提供者不存在的异常此时Mock实际还未介入最终可能导致调用或程序中断 2.empty 使用throw来返回一个Exception对象作为远程方法调用的返回值 当调用出错时抛出一个默认的RPCException dubbo:reference idorderService interfacecom.harvey.samples.client.OrderService protocoldubbo groupone mockthrow/ 也可以抛出一个自定义的异常 dubbo:reference idorderService interfacecom.harvey.samples.client.OrderService protocoldubbo groupone   mockthrow com.harvey.samples.core.OrderException/ 3.force和fail 只有当远程调用发生错误时才使用Mock行为。force: 代表强制使用Mock行为在这种情况下不会走远程调用。force: 和 fail: 都支持与throw或者return组合使用 强制接口所有方法返回指定值 dubbo:reference idorderService interfacecom.harvey.samples.client.OrderService protocoldubbo groupone    mockforce:return stringresult/ 强制抛出自定义的异常 dubbo:reference idorderService interfacecom.harvey.samples.client.OrderService protocoldubbo groupone                      mockforce:throw com.harvey.samples.core.OrderException/ 自定义Mock类 在消费服务端本地创建一个实现了服务接口的Mock类当远程服务不可用时或临时需要停用时Dubbo框架将会调用mock属性指定的Mock类对应的方法并返回预设值给到用户。 1.设置为自定义的Mock类完整名或将mock属性设置为true dubbo:reference idorderService interfacecom.harvey.samples.client.OrderService protocoldubbo groupone                      mockcom.harvey.samples.core.OrderServiceMock/ 或 dubbo:reference idorderService interfacecom.harvey.samples.client.OrderService protocoldubbo groupone                      mocktrue/ 如果属性mock设置为true的方式则需要将Mock实现类放在和接口相同的包下 2.定义Mock类实现需要降级的方法返回预设的值 Mock类的命名规则遵循为服务接口名Mock后缀实现服务接口并有一个无参构造函数。 public class OrderServiceMock implements OrderService {     //必须有一个无参构造函数     public OrderServiceMock(){     }     Override     public Order getOrderInfo(long orderId) throws InterruptedException {         Order order new Order();         order.setOrderId(-1L);         order.setOrderName(调用失败);         return order;     }     Override     public ListOrder listAll() {         // 返回一个空的列表         return new ArrayList();     } } 注意        Dubbo的服务降级采用的是mock机制可以直接使用其内置的mock实现也可以自定义本地的Mock类来实现。Dubbo的服务降级的介入节点主要在服务消费者端对应配置属性为mock支持接口级别和方法级别两种粒度的服务降级配置 服务熔断 缺陷分析 由于 dubbo 不带熔断机制所以尽管每次因为 RPC 异常而导致调用失败也不会进行熔断处理即不管调用失败多少次消费者还是会继续进行调用。其实这样会导致服务的资源浪费 1.只要服务提供者出现异常达到一定的次数其实可以理解为服务提供者短时间内已经不能正常提供服务了后续再调用也是浪费资源 2.如果是上述的超时问题消费者还会进行 1retires 次的 RPC 调用这样就更加浪费资源了 熔断机制 当调用失败达到指定的次数则将熔断器打开一段时间即将请求链路断开在指定时间内都不再让消费者向提供者发送请求当熔断时间到了就将熔断器设置为半打开的状态此时消费者可以往提供者发送请求并统计成功次数如果达到指定的成功次数熔断器则变为关闭状态即将请求链路打开否则熔断器又变回打开状态。 不管是业务错误还是请求超时只要时间内达到了一定的次数就做上述的熔断处理这样就可以防止没有必要的调用防止浪费资源。 dubbo结合hystrix实现服务的熔断降级 1.添加依赖 dependency         groupIdorg.springframework.cloud/groupId         artifactIdspring-cloud-starter-netflix-hystrix/artifactId         version2.0.1.RELEASE/version /dependency 2.启动类添加注解 EnableHystrix 3.在 Service 中增加注解 HystrixCommand(commandProperties {HystrixProperty(name circuitBreaker.requestVolumeThreshold, value 10),HystrixProperty(name execution.isolation.thread.timeoutInMilliseconds, value 2000)})Overridepublic String sayHi() {throw new RuntimeException(Exception to show hystrix enabled.);} HystrixCommand(fallbackMethod hiError)RequestMapping(value hi)public String sayHi() {return userService.sayHi();}public String hiError() {return Hystrix fallback;} 服务隔离 服务隔离指的是将不同的服务放在不同的进程或者容器中运行防止某个服务出现故障影响到其他服务的正常运行。Dubbo支持将不同的服务放在不同的进程或者容器中运行实现服务的隔离 重试机制 Dubbo 服务在尝试调用一次之后如出现非业务异常(服务突然不可用、超时等)Dubbo 默认会进行额外的最多2次重试。Dubbo可以配置重试次数、重试间隔时间等参数实现重试机制。 Dubbo默认提供了重试机制可以通过在配置文件中设置retries参数来启用。如果服务调用失败则Dubbo会自动重新尝试调用服务直到达到最大重试次数或服务调用成功。重试过程中Dubbo会等待一定的时间间隔以避免对服务的过度压力 重试次数配置 1.通过注解/xml进行固定配置 dubbo:consumer retries2/dubbo:consumer 2.通过RpcContext进行运行时动态配置 // dubbo服务调用前通过RpcContext动态设置本次调用的重试次数 RpcContext rpcContext RpcContext.getContext(); rpcContext.setAttachment(retries, 5); 代码示例 provider 1.xml !--为服务的所有方法设置超时时间-- dubbo:service interfacecom.harvey.samples.client.OrderService reforderServiceImpl                    protocoldubbo groupone timeout5000/ !--具体为某个方法设置超时时间-- dubbo:service interfacecom.harvey.samples.client.OrderService reforderServiceImpl                protocoldubbo groupone     dubbo:method namegetOrderInfo timeout5000/ /dubbo:service 2.方法 private AtomicLong atomicLong new AtomicLong(); Override public Order getOrderInfo(long orderId) throws InterruptedException {     System.out.println(调用第 atomicLong.incrementAndGet() 次);     RpcContext rpcContext RpcContext.getContext();     System.out.println(当前调用的服务端口 rpcContext.getLocalPort() , 获取订单 orderId);     //休眠主要是让服务提供者的超时时间生效超时触发了消费者的重试机制     TimeUnit.SECONDS.sleep(6);     return orderMap.get(orderId); } consumer 1.xml dubbo:reference idorderService interfacecom.harvey.samples.client.OrderService                  protocoldubbo groupone retries2/ 2.方法 public class ConsumerStarter {     public static void main(String[] args) throws IOException, InterruptedException {         ClassPathXmlApplicationContext context new ClassPathXmlApplicationContext(new String[]{spring/dubbo-consumer.xml});         context.start();         System.out.println(consumer start.....);         //dubbo         OrderService orderService1 context.getBean(orderService, OrderService.class);         System.out.println(接口getOrderInfo);         System.out.println(SUCCESS: got getOrderInfo orderService1.getOrderInfo(10L));     } }
http://www.tj-hxxt.cn/news/138733.html

相关文章:

  • 百度地图优化排名方法seo建站外贸
  • 网站放到iis如何做指向提供手机自适应网站建设
  • 青羊区网站建设公司官方网站建设银行
  • 什么是企业营销型网站常州网
  • 会展企业网站建设方案免费网站模板
  • jsp两种网站开发模式网站改版需要重新备案吗
  • 网站解析多久软件工程师工资
  • 网站建设万户wordpress不显示中文图片不显示
  • 大美南京网站软件开发服务税率
  • 网站建设建设报价网站建设 流程
  • 做大型网站费用深圳做网站的公司哪个好
  • php旅游网站开发小结珠海网站专业制作
  • 网站登录模板下载建网站 外贸
  • 第一ppt网站苏州网站营销公司
  • 二级域名网站可以做关键词优化吗网站制作公司网站建设
  • 建筑网站上海设计制造有限公司
  • linux ctlscript.sh wordpress广州全面优化各项防控措施
  • 做响应式网站字体需要响应么站长论坛 激活网站
  • 吉林做网站优化深圳建站费用
  • 网站设计展示优化关键词排名
  • 北京创意网站设计城乡住房和城乡建设部网站
  • 网站设计制作从哪wordpress 缓存 收录
  • 免费公司网站互联网公司名称
  • 东莞东城做网站公司潍坊网站建设服务商
  • 网站诊断案例wordpress 存储插件
  • 手机网站建设免费空间蒙文网站开发
  • 网站建设品牌排行榜在线头像制作免费软件
  • 网站经营性质wordpress seo免费主题
  • 响应式视频网站模板oneinstack wordpress
  • 网站建设毕业设计中期进度报告微信推送用哪个网站做