首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一起来认识一下客户端的负载均衡机制

SpringCloud之负载均衡

Ribbon负载均衡

Ribbon与Nginx的区别

Ribbon负载均衡的底层实现

Feign

Feign客户端超时时间设置

Ribbon负载均衡Ribbon与Nginx的区别

客户端负载均衡Ribbbon:Ribbon是从Eureka注册中心服务器上获取注册信息列表,缓存到本地, 然后在本地实现轮询负载均衡策略.即在客户端实现负载均衡.

服务端负载均衡Nginx:Ngnix是客户端所有请求统一交给Nginx,由Nginx实现负载均衡请求转发,属于服务器端负载均衡.即请求由Nginx服务器端进行转发.应用场景的区别:Nginx适用服务器端实现负载均衡:Tomcat,JettyRibbon适用于在微服务中RPC远程调用实现本地负载均衡:Dubbo,SpringCloud

Ribbon负载均衡的底层实现

Ribbon负载均衡:客户端从Eureka注册中心获取对应的注册信息列表,获取到注册信息列表后,缓存到本地,然后在本地实现负载均衡.即负载均衡是由客户端实现的.

负载均衡算法:接口的总请求数取模服务器数得到实际的服务器下标(从0开始)获取到服务器调用服务

实现:获取对应服务器的远程调用地址:DiscoveryClientList instances=discoveryClient.getInstance("eureka_ticket"); 使用rest方式发送请求使用远程调用 String result=restTemplate.getForObject(instanceUrl,String.class);

Feign

SpringCloud中支持两种客户端调用工具:Rest(RestTemplate模板)Feign

Feign是声明式Http客户端调用工具,采用接口+注解方式实现,易读性强.

Feign客户端书写是以SpringMVC接口形式书写的@FeignClient(name="服务别名")@FeignClient调用服务接口(name:服务名称)

在主类上标注@EnableFeignClients注解开启Feign权限

微服务项目目录结构:parent: 存放共同的依赖信息api-service: 所有服务的接口ticket-service: 特定服务的接口ticket-serviceImpl: 特定服务的实现实体类和定义接口信息存放在接口包里

在特定服务中的参数前面要标注@RequestParam("xx"),这样参数才会被接收

Feign客户端超时时间设置设置Feign客户端超时时间

ribbon.connectTime=5000# 建立连接所用时间,两端连接所用时间ribbon.ReadTimeout=5000# 建立连接后,从服务器读取可用资源所用时间

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210312A04XWM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券