Ribbon 负载均衡调用
Spring Cloud Ribbon 是基于Netfix Ribbon实现的一套客户端 负载均衡的工具
简单的说,Ribbon是Netfix发布的开源项目,主要功能是提供客户端的软件的负载均衡算法和服务调用。Ribbon客户端的组件完善配置项如何连接超时,重试等。简单的说配置文件中列出Load Balanceer(简称LB)后面所有的机器,Ribbon会帮助你基于某种规则(轮询或者随机连接)去这些机器。使用Ribbon很容易实现自义定的负载均衡算法
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-E9gWJ6TJ-1601736782898)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095129723.png)]
集中式LB
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Fycnv5MW-1601736782900)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095212142.png)]
进程内LB
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8yWoyqUD-1601736782902)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095239327.png)]
Ribbon 实现了负载均衡和RestTemplate调用
架构说明
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oiEGgjB3-1601736782904)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095338652.png)]
restTemplate 的使用
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K9AA0Twf-1601736782907)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095437590.png)]
IRule
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AHhxlqDX-1601736782908)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095520199.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nMWBg5ZO-1601736782909)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095543958.png)]
如何配置
1.[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VKddcJdr-1601736782911)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095616080.png)]
2.[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oiVkRbnk-1601736782911)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095636509.png)]
import org.springframework.context.annotation.Configuration;
/**
* 自定义负载均衡路由规则类
*
* @author zzyy
* @date 2020/3/6 15:15
**/
@Configuration
public class MySelfRule {
@Bean
public IRule myRule() {
// 定义为随机
return new RoundRobinRule();
}
}
4.主启动类上添加@RibbonClient
原理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9HQTK975-1601736782912)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095757204.png)]
手写原理
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ShawUWWF-1601736782913)(C:\Users\74551\AppData\Roaming\Typora\typora-user-images\image-20200818095839422.png)]