前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微服务架构Day19-SpringCloud之负载均衡

微服务架构Day19-SpringCloud之负载均衡

作者头像
攻城狮Chova
发布2022-01-22 10:38:37
1610
发布2022-01-22 10:38:37
举报
文章被收录于专栏:攻城狮Chovas攻城狮Chovas

Ribbon负载均衡

Ribbon与Nginx的区别

  • 客户端负载均衡Ribbbon:
    • Ribbon是从Eureka注册中心服务器上获取注册信息列表,缓存到本地, 然后在本地实现轮询负载均衡策略.即在客户端实现负载均衡.
  • 服务端负载均衡Nginx:
    • Ngnix是客户端所有请求统一交给Nginx,由Nginx实现负载均衡请求转发,属于服务器端负载均衡.即请求由Nginx服务器端进行转发.
    • 应用场景的区别:
      • Nginx适用服务器端实现负载均衡:Tomcat,Jetty
      • Ribbon适用于在微服务中RPC远程调用实现本地负载均衡:Dubbo,SpringCloud

Ribbon负载均衡的底层实现

Ribbon负载均衡:

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

负载均衡算法:

  • 接口的总请求数取模服务器数得到实际的服务器下标(从0开始)获取到服务器调用服务

实现:

  • 获取对应服务器的远程调用地址:DiscoveryClient
代码语言:javascript
复制
List<ServiceInstance> instances=discoveryClient.getInstance("eureka_ticket");
  • 使用rest方式发送请求使用远程调用
代码语言:javascript
复制
 String result=restTemplate.getForObject(instanceUrl,String.class);

Feign

  • SpringCloud中支持两种客户端调用工具:
    • Rest(RestTemplate模板)
    • Feign
  • Feign是声明式Http客户端调用工具,采用接口+注解方式实现,易读性强.
代码语言:javascript
复制
Feign客户端书写是以SpringMVC接口形式书写的

@FeignClient(name="服务别名")
@FeignClient调用服务接口(name:服务名称)

在主类上标注@EnableFeignClients注解开启Feign权限
代码语言:javascript
复制
微服务项目目录结构:
parent: 存放共同的依赖信息
api-service: 所有服务的接口
ticket-service: 特定服务的接口
ticket-serviceImpl: 特定服务的实现
实体类和定义接口信息存放在接口包里
在特定服务中的参数前面要标注@RequestParam("xx"),这样参数才会被接收

Feign客户端超时时间设置

代码语言:javascript
复制
设置Feign客户端超时时间
ribbon.connectTime=5000		# 建立连接所用时间,两端连接所用时间
ribbon.ReadTimeout=5000		# 建立连接后,从服务器读取可用资源所用时间
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-03-12 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Ribbon负载均衡
    • Ribbon与Nginx的区别
      • Ribbon负载均衡的底层实现
      • Feign
        • Feign客户端超时时间设置
        相关产品与服务
        负载均衡
        负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档