Ribbon
作者:互联网
SpringCLoud Ribbon 是一款基于Netflix Ribbon 实现的一套客户端负载均衡的工具
简单的说,Ribbon是Netflix发布的开源的项目,主要功能是提供客户端的软件负载均衡算法和服务调用。Ribbon客户端组件提供一系列完善的配置项,如连接超时、重试等。简单的说,及时在配置文件中列出Load Balance(简称LB)后面的所有的机器,Ribbon会自动的帮助你基于某种规则(如简单轮询。随机连接等)去连接这些机器。我们很容易使用Ribbon实现自定义的负载均衡算法。
https://github.com/Netflix/ribbon/wiki/Getting-Started
LB负载均衡(Load Balance)是什么
简单的说就是将用户的请求平摊的分配到多个服务器上,从而达到系统的高可用。
常见的负载均衡软件有Nginx
Ribbon 客户端本地负载均衡 VS Nginx服务端负载均衡区别
Nigix是服务器端负载均衡,客户端所有的请求都会交给nginx,然后由nginx实现转发请求。即负载均衡是由服务器端实现的。
Ribbon本地负载均衡,在调用微服务接口的时候,会在注册中心上获取注册信息服务列表之后缓存到JVM本地,从而在本地实现RPC远程服务调用技术。
Ribbon在工作时分成两步 第一步先选择 EurekaServer ,它优先选择在同一个区域内负载较少的server. 第二步再根据用户指定的策略,在从server取到的服务注册列表中选择一个地址。 其中Ribbon提供了多种策略:比如轮询、随机和根据响应时间加权。 负载均衡算法:rest接口第几次请求数 % 服务器集群总数量 = 实际调用服务器位置下标 ,每次服务重启动后rest接口计数从1开始。 List<ServiceInstance> instances = discoveryClient.getInstances("CLOUD-PAYMENT-SERVICE"); 如: List [0] instances = 127.0.0.1:8002 List [1] instances = 127.0.0.1:8001 8001+ 8002 组合成为集群,它们共计2台机器,集群总数为2, 按照轮询算法原理: 当总请求数为1时: 1 % 2 =1 对应下标位置为1 ,则获得服务地址为127.0.0.1:8001 当总请求数位2时: 2 % 2 =0 对应下标位置为0 ,则获得服务地址为127.0.0.1:8002 当总请求数位3时: 3 % 2 =1 对应下标位置为1 ,则获得服务地址为127.0.0.1:8001 当总请求数位4时: 4 % 2 =0 对应下标位置为0 ,则获得服务地址为127.0.0.1:8002 如此类推......
标签:负载,127.0,下标,0.1,均衡,Ribbon 来源: https://www.cnblogs.com/shi-yongcui/p/16480841.html