SpringCloud-Ribbon组件

Ribbon组件

是Netflix的开源组件,能实现基于http和tcp的客户端负载均衡,它不需要独立部署,但存在于第一个基于spring cloud构建的微服务应用程序中

负载均衡的概念

也就是分担承受压力

负载匀衡的实现(也就是需要一个负载均衡的服务器)

Ribbon的用法

服务端负载均衡

客户端先访问负载均衡服务器,负载均衡服务器通过负载均衡算法请求进行分发,访问到具体的服务器

客户端负载均衡

服务消费者先通过注册中心获得服务器清单,再通过Ribbon使用负载均衡算法计算服务地址,访问具体的服务提供者

具体实现:

1. 添加依赖:spirng-cloud –starter-netflix-ribbon

包含在srping-cloud-starter-netflix-eureka-client依赖中

2. 为RestTemplate添加@LoadBalance注解

注:该注解在调用商品服务(订单服务中),config类中

3. 增加多个商品服务端:

以同样的方法可以增加多个商品服务

注:如何调用不同服务端口号

RestTemplate的用法

是spring框架提供的Rest客户端,用于调用Rest服务,它基于HTTP和tcp协议,默认依赖jdk的httpURLConnection实现,也可以按需要修改为其他实现,如ApacheHttpComponents,Netty和OKHttp等。

常用方法 

Object getForObject Get方法调用

ResponseEntity getForEntity Get方法调用

Object postForObject post方法调用

ResponseEntiy postForEntity post方法调用

Void delete delete方法调用

Void put PUT方法调用

ResponseEntiy exchange 转换方法(put,delete没有返回对象)

也就是远程接口的调用。

 

负载均衡算法:

这里的所有内置负载均衡策略(也就是有规律的访问服务器(端口))都要实现IRule接口

内置负载均衡策略类 

RoundRobinRule 线性轮询

RandomRule 随机选择

WeightedResponseTimeRule 按相应时间分配权重

AvailabilityFileringRule 过滤短路和并发我的服务器

ZoneAvoidanceRule 以可用区域对服务器进行分类

BestAvailableRule 忽略短路并选择并发少的服务器

RetryRule 重试机制

自定义配置方法:

服务器名.ribbon.NFLoadBalancerRuleClassName-com.netflix.loadbalacer.策略名称

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值