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

网站可以做推广吗wordpress商品展示主题

网站可以做推广吗,wordpress商品展示主题,河北廊坊建筑模板厂家,购物网站建设情况汇报什么是负载均衡#xff1f; 如果一个服务对应多个实例#xff0c;我们需要把流量合理的分配给多个实例#xff1b;当服务流量增⼤时, 通常会采⽤增加机器的⽅式进⾏扩容, 负载均衡就是⽤来在多个机器或者其他资源#xff0c;中, 按照⼀定的规则合理分配负载. 服务端负载…什么是负载均衡 如果一个服务对应多个实例我们需要把流量合理的分配给多个实例当服务流量增⼤时, 通常会采⽤增加机器的⽅式进⾏扩容, 负载均衡就是⽤来在多个机器或者其他资源中, 按照⼀定的规则合理分配负载. 服务端负载均衡 ⽐较有名的服务端负载均衡器是Nginx. 请求先到达Nginx负载均衡器, 然后通过负载均衡算法, 在多个服务器之间选择⼀个进⾏访问. 客户端负载均衡 把负载均衡的功能以库的⽅式集成到客⼾端, ⽽不再是由⼀台指定的负载均衡设备集中提供. ⽐如Spring Cloud的Ribbon, 请求发送到客⼾端, 客⼾端从注册中⼼(⽐如Eureka)获取服务列表, 在发 送请求前通过负载均衡算法选择⼀个服务器,然后进⾏访问. Ribbon是Spring Cloud早期的默认实现, 由于不维护了, 所以最新版本的Spring Cloud负载均衡集成的是Spring Cloud LoadBalancer(Spring Cloud官⽅维护) 客⼾端负载均衡和服务端负载均衡最⼤的区别在于服务清单所存储的位置 使用Spring Cloud LoadBalancer实现负载均衡 1.给RestTemplate这个Bean添加LoadBalanced注解。 2.修改远程调用代码的url的IP端口号为服务名称。 负载均衡策略 负载均衡策略是一种思想无论哪种负载均衡器它们的负载均衡策略都是相似的。Spring Cloud LoadBalancer仅支持两种负载均衡策略轮询策略和随机策略。 轮询Round Robin轮询策略是指服务器轮流处理用户请求这是一种实现最简单也是最常用的策略。随机选择Random这个策略是指随机选择一个后端服务器来处理新的请求。 自定义负载均衡策略 Spring Cloud LoadBalancer 默认负载均衡策略是 轮询策略, 实现是 RoundRobinLoadBalancer, 如果服务的消费者如果想采⽤随机的负载均衡策略, 也⾮常简单 自定义随机算法对象, 通过 Bean 将其加载到 Spring 容器中 public class LoadBalancerConfig {         Bean         ReactorLoadBalancerServiceInstance randomLoadBalancer (Environment environment, LoadBalancerClientFactory loadBalancerClientFactory) {                 String name environment.getProperty(LoadBalancerClientFactory. PROPERTY_NAME );                 System.out.println( name);                 return new RandomLoadBalancer (loadBalancerClientFactory.getLazyProvider(name, ServiceInstanceListSupplier.class), name);         } } 2.使⽤ LoadBalancerClient 或者 LoadBalancerClients 注解在RestTemplate 配置类上⽅, 使⽤ LoadBalancerClient 或 LoadBalancerClients 注解, 可以对不同的服务提供⽅配置不同的客⼾端负载均衡算法策略.  LoadBalancerClient(name product-service, configuration LoadBalancerConfig.class) Configuration public class BeanConfig {         Bean         LoadBalanced         public RestTemplate restTemplate (){                 return new RestTemplate ();         } } LoadBalancerClient 注解说明 1. name: 该负载均衡策略对哪个服务⽣效(服务提供⽅) 2. configuration : 该负载均衡策略 ⽤哪个负载均衡策略实现. LoadBalancer原理 LoadBalancer 的实现, 主要是 LoadBalancerInterceptor , 这个类会对 RestTemplate 的请 求进⾏拦截, 然后从Eureka根据服务id获取服务列表随后利⽤负载均衡算法得到真实的服务地址信息替换服务id public class LoadBalancerInterceptor implements ClientHttpRequestInterceptor {public ClientHttpResponse intercept(final HttpRequest request, final byte[] body, final ClientHttpRequestExecution execution) throws IOException { URI originalUri request.getURI();String serviceName originalUri.getHost();Assert.state(serviceName ! null, Request URI does not contain a valid hostname: originalUri);return (ClientHttpResponse)this.loadBalancer.execute(serviceName, this.requestFactory.createRequest(request, body, execution));} }可以看到这里的intercept方法拦截了用户的HttpRequest请求然后做了几件事 1. request.getURI() 从请求中获取uri 2. originalUri.getHost()从uri中获取路径的主机名, 也就是服务id 3. loadBalancer.execute 根据服务id, 进⾏负载均衡, 并处理请求 继续往下面看 public class BlockingLoadBalancerClient implements LoadBalancerClient { public T T execute(String serviceId, LoadBalancerRequestT request) throws IOException {String hint this.getHint(serviceId);LoadBalancerRequestAdapterT, TimedRequestContext lbRequest new LoadBalancerRequestAdapter(request, this.buildRequestContext(request, hint));SetLoadBalancerLifecycle supportedLifecycleProcessors this.getSupportedLifecycleProcessors(serviceId);supportedLifecycleProcessors.forEach((lifecycle) - {lifecycle.onStart(lbRequest);});//根据serviceId,和负载均衡策略, 选择处理的服务ServiceInstance serviceInstance this.choose(serviceId, lbRequest);if (serviceInstance null) {supportedLifecycleProcessors.forEach((lifecycle) - {lifecycle.onComplete(new CompletionContext(Status.DISCARD, lbRequest, new EmptyResponse()));});throw new IllegalStateException(No instances available for serviceId);} else {return this.execute(serviceId, serviceInstance, lbRequest);}} //根据serviceId,和负载均衡策略, 选择处理的服务public T ServiceInstance choose(String serviceId, RequestT request) {//获取负载均衡器ReactiveLoadBalancerServiceInstance loadBalancer this.loadBalancerClientFactory.getInstance(serviceId);if (loadBalancer null) {return null;} else { //根据负载均衡算法, 在列表中选择⼀个服务实例ResponseServiceInstance loadBalancerResponse (Response)Mono.from(loadBalancer.choose(request)).block();return loadBalancerResponse null ? null : (ServiceInstance)loadBalancerResponse.getServer();}}负载均衡跟LoadBalancer就介绍到这里如果想深入了解可以去继续阅读源码~
http://www.w-s-a.com/news/216334/

相关文章:

  • 网站的服务器选择wordpress文章底部加分享
  • 天津专业的网站建设公司阿里云服务器 wordpress
  • 家教辅导培训网站建设中东跨境电商平台有哪些
  • 商城形式的网站需要多少钱做医药商城网站的公司吗
  • 贵阳网站设计zu97彩票创建网站
  • 网站建设与分工的论文足球世界排名
  • 网站首页添加标签如何用模板建站
  • 官方网站包括哪几个网站泰安的网站建设公司哪家好
  • 域名虚拟服务器做网站如何搭建企业网站
  • 用手机做网站服务器口碑好的常州网站建设
  • 摄影网站的设计与实现开题报告太原企业自助建站
  • 做如美团式网站要多少钱做网站怎么去文化局备案
  • 桂平市住房和城乡建设局网站网站建设与管理自考题
  • 怎么做公司网站制作凡科官方网
  • 达人设计网官方网站建筑效果图网站有哪些
  • 网站定制哪家快建筑室内设计网
  • 网站创建方案论文旅游网站的设计与制作html
  • 网站建设的数据导入导出开发小程序需要多少钱费用
  • 局网站建设进入前十名wordpress user role editor
  • 网站托管如何收费搜一下百度
  • 中国建设劳动协会网站wordpress 区块链媒体
  • 网站开源是什么意思西安做网站科技有限公司
  • 自己怎么用h5做网站肇庆seo
  • 长沙网站seo优化公司东莞企业官方网站建设
  • 网站个人备案材料北京网站推广价格
  • 百度做任务的网站电子工程网网站
  • 中介订制网站开发玉溪网站建设设计
  • 免费网站免费无遮挡手机页面设计软件
  • 网站建设需求规格说明书中山模板建站公司
  • wordpress get值网站建设 seo sem