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

做游戏脚本的网站信息发布型网站是企业网站的什么

做游戏脚本的网站,信息发布型网站是企业网站的什么,沈丘做网站yooker,网站优秀网站地址目录 什么是负载均衡 服务端负载均衡 客户端负载均衡 Spring Cloud LoadBalancer快速上手 启动多个product-service实例 测试负载均衡 负载均衡策略 自定义负载均衡策略 什么是负载均衡 负载均衡(Load Balance,简称 LB) , 是高并发, 高可用系统必不可少的关…

目录

什么是负载均衡

服务端负载均衡

客户端负载均衡

Spring Cloud LoadBalancer快速上手

启动多个product-service实例

测试负载均衡

负载均衡策略

自定义负载均衡策略


什么是负载均衡


负载均衡(Load Balance,简称 LB) , 是高并发, 高可用系统必不可少的关键组件。

当服务流量增大时,通常会采用增加机器的方式进行扩容,负载均衡就是用来在多个机器或者其他资源中,,按照⼀定的规则合理分配负载。

负载均衡分为服务端负载均衡和客户端负载均衡。


服务端负载均衡


在服务端进行负载均衡的算法分配。

比较有名的服务端负载均衡器是Nginx。请求先到达Nginx负载均衡器,,然后通过负载均衡算法,在多个服务器之间选择⼀个进行访问。

如图:


客户端负载均衡


把负载均衡的功能以库的方式集成到客户端,而不再是由一台指定的负载均衡设备集中提供。

比如Spring Cloud的Ribbon,请求发送到客户端,客户端从注册中心(比如Eureka)获取服务列表在发送请求前通过负载均衡算法选择⼀个服务器,然后进行访问。

Ribbon是Spring Cloud早期的默认实现,由于不维护了,所以最新版本的Spring Cloud负载均衡集成的是Spring Cloud LoadBalancer(Spring Cloud官方维护)。

如图:

客户端负载均衡和服务端负载均衡最大的区别在于服务清单所存储的位置。


Spring Cloud LoadBalancer快速上手


(1)给 RestTemplate 这个Bean添加 @LoadBalanced 注解就可以。

如代码:

@Configurationpublic class BeanConfig {@Bean@LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();}
}

(2)修改IP端口号为服务名称。 

public OrderInfo selectOrderById(Integer orderId) {OrderInfo orderInfo = orderMapper.selectOrderById(orderId);
//String url = "http://127.0.0.1:9090/product/"+ orderInfo.getProductId();String url = "http://product-service/product/" + orderInfo.getProductId();ProductInfo productInfo = restTemplate.getForObject(url,ProductInfo.class);orderInfo.setProductInfo(productInfo);return orderInfo;}

上述的代码,是基于nacos实现的,order是一个点单的服务,还有一个产品的服务(product)

产品服务测试启动多个服务,来测试负载均衡。


启动多个product-service实例


启动多个product-service实例

如图:


测试负载均衡


连续多次发起请求: http://127.0.0.1:8080/order/1

观察product-service的日志, 会发现请求被分配到这3个实例上了

如图:


负载均衡策略


  负载均衡策略是⼀种思想,无论是哪种负载均衡器,它们的负载均衡策略都是相似的SpringCloud LoadBalancer 仅支持两种负载均衡策略:轮询策略 和 随机策略

1. 轮询(Round Robin):轮询策略是指服务器轮流处理用户的请求,这是⼀种实现最简单,也最常用的策略,生活中也有类似的场景,比如学校轮流值日,或者轮流打扫卫生。

2. 随机选择(Random):随机选择策略是指随机选择⼀个后端服务器来处理新的请求。


自定义负载均衡策略


Spring Cloud LoadBalancer 默认负载均衡策略是轮询策略,实现是 RoundRobinLoadBalancer,如果服务的消费者如果想采用随机的负载均衡策略,也非常简单。


(1)定义随机算法对象, 通过 @Bean 将其加载到 Spring 容器中

如代码:

public class LoadBalancerConfig {@BeanReactorLoadBalancer<ServiceInstance> randomLoadBalancer(Environmentenvironment,LoadBalancerClientFactory loadBalancerClientFactory) {String name =environment.getProperty(LoadBalancerClientFactory.PROPERTY_NAME);System.out.println("=============="+name);return newRandomLoadBalancer(loadBalancerClientFactory.getLazyProvider(name,ServiceInstanceListSupplier.class), name);}}

注意:该类需要满足:

1. 不用 @Configuration 注释

2. 在组件扫描范围内


(2) 使用 @LoadBalancerClient 或者 @LoadBalancerClients 注解

在 RestTemplate 配置类上方,使用 @LoadBalancerClient 或 @LoadBalancerClients 注解,可以对不同的服务提供方配置不同的客户端负载均衡算法策略。

如代码:

@LoadBalancerClient(name = "product-service", configuration =LoadBalancerConfig.class)@Configurationpublic class BeanConfig {@Bean@LoadBalancedpublic RestTemplate restTemplate(){return new RestTemplate();}}

@LoadBalancerClient 注解说明

(1) name:该负载均衡策略对哪个服务生效(服务提供方)。

(2)configuration:该负载均衡策略用哪个负载均衡策略实现。


http://www.yayakq.cn/news/878591/

相关文章:

  • 网站之前没备案长春生物新冠疫苗
  • 做机械设计图纸找什么网站?九江市建设局网站
  • 网站设计公司 无锡重庆知名网站建设公司
  • 做网站需要提供什么营销网络的建设是什么意思
  • 马尾网站建设网站关键词越多越好吗
  • 怎么利用源码做网站班级网站开发报告
  • 万创网站建设wordpress添加主题
  • 中山网站建设方案报价phpcms手机网站怎么做
  • 58同城烟台网站建设公司网站建站哪个系统好用
  • 四川网站建设博客wordpress 小说主题
  • 网站建设的目地网站的建设进度表
  • 大理网站设计wordpress实现分享
  • 自建网站该页无法显示微博内容放到wordpress
  • 百度网站怎么做友情链接网页就是一个网站的首页
  • 电商网站用什么做的购买的域名是永久的吗
  • 天律网站建设管理学精品课程网站
  • 公司网站策划宣传wordpress是什么系统
  • 西宁市建设局官方网站网站建设易网
  • 国内家居行业网站开发wordpress上传数据
  • 购物网站制作网站推广目标什么意思
  • 用ps做班级网站中国住房和城乡建设部网站一级建造师网
  • 南京做网站的网络公司排名用框架做网站如何居中
  • 网站开发流程抚州南京开发门户网站的公司
  • 织梦 一键更新后网站空白免费流量平台哪个最好
  • 如何做枪版电影网站深圳市空间设计有限公司
  • 静态网站系统小区物业管理系统
  • 泰州网站建设方案优化wordpress侧边栏加载过慢
  • 网站开发 flex布局网络营销公司起名
  • 网站开发后服务费开虚拟机很伤电脑吗
  • 凡客和凡客诚品一样吗做网站优化推广