博客
关于我
SpringCloud进阶(四)Ribbon
阅读量:345 次
发布时间:2019-03-04

本文共 813 字,大约阅读时间需要 2 分钟。

五 Ribbon

5.1 简介

Spring Cloud Ribbon是基于Netflix Ribbon实现的一套客户端负载均衡工具。它主要负责服务的客户端负载均衡,支持多种负载均衡算法和服务调用功能。通过配置文件中列出的服务地址,Ribbon可以自动基于预设规则(如轮询)实现服务的负载均衡。
  • 负载均衡

简单来说,Ribbon会将用户的请求平摊分配到多个服务上,从而实现系统的高可用性和稳定性。

  • Ribbon本地负载均衡与Nginx服务端负载均衡的区别

Ribbon与Nginx的主要区别在于负载均衡的实现方式:

  • Nginx是服务器端负载均衡,所有请求都会交给Nginx处理,Nginx再将请求转发至多个服务器。
  • Ribbon则是本地负载均衡,在调用微服务接口时,会在注册中心获取可用的服务地址并缓存到本地,进而在本地实现RPC远程服务调用。
  • Ribbon属于进程内负载均衡,消费方直接在服务注册中心获取服务地址,并基于预设规则(如轮询)选择合适的服务进行调用。
  • Nginx则是集中式负载均衡,需要在服务提供方和消费方之间部署独立的负载均衡设施(如硬件或软件负载均衡器),以实现请求的转发。

5.2 基本使用

Ribbon的基本使用流程如下:

图片描述:Ribbon的基本使用流程图

图片描述:Ribbon的基本配置示例图

图片描述:Ribbon的集群代码示例图

5.3 RestTemplate

  • IRule的实现类

图片描述:RestTemplate中的IRule实现类示例图

图片描述:RestTemplate中自定义负载均衡规则示例图

  • 编写算法

图片描述:自定义负载均衡算法实现类示例图

  • 编写配置类

图片描述:负载均衡配置类实现示例图

  • 开启服务

图片描述:Spring Boot应用中集成Ribbon负载均衡配置示例图

  • 查看结果

通过测试可以发现,每个服务接收6次请求,Ribbon能够有效地完成请求的分发和负载均衡。

转载地址:http://jebe.baihongyu.com/

你可能感兴趣的文章
Objective-C实现max sum sliding window最大和滑动窗口算法(附完整源码)
查看>>
Objective-C实现MaxHeap最大堆算法(附完整源码)
查看>>
Objective-C实现MaximumSubarray最大子阵列(Brute Force蛮力解决方案)算法(附完整源码)
查看>>
Objective-C实现MaximumSubarray最大子阵列(动态规划解决方案)算法(附完整源码)
查看>>
Objective-C实现maxpooling计算(附完整源码)
查看>>
Objective-C实现max_difference_pair最大差异对算法(附完整源码)
查看>>
Objective-C实现max_heap最大堆算法(附完整源码)
查看>>
Objective-C实现MD5 (附完整源码)
查看>>
Objective-C实现md5算法(附完整源码)
查看>>
Objective-C实现MeanSquareError均方误差算法 (附完整源码)
查看>>
Objective-C实现median filter中值滤波器算法(附完整源码)
查看>>
Objective-C实现memcmp函数功能(附完整源码)
查看>>
Objective-C实现memcpy函数功能(附完整源码)
查看>>
Objective-C实现memoization优化技术算法(附完整源码)
查看>>
Objective-C实现memset函数功能(附完整源码)
查看>>
Objective-C实现merge insertion sort合并插入排序算法(附完整源码)
查看>>
Objective-C实现merge sort归并排序算法(附完整源码)
查看>>
Objective-C实现mergesort归并排序算法(附完整源码)
查看>>
Objective-C实现MidpointIntegration中点积分算法 (附完整源码)
查看>>
Objective-C实现miller rabin米勒-拉宾素性检验算法(附完整源码)
查看>>