负载均衡Ribbon
LB负载均衡(Load Balance)是什么
简单的来说就是将用户的请求平摊的分配到多个服务上,从而达到系统的HA(高可用)。长建的负载均衡软件有Nginx,LVS,硬件F5等。
Ribbon本地负载均衡客户端和Nginx服务端负载均衡的区别
Nginx是服务器负载均衡,客户端所有请求都会交给Nginx,然后由Nginx实现转发请求,即负载均衡是由服务端实现的。
Ribbon本地负载均衡,在调用服务接口的时候,会在注册中心上获取注册信息服务列表之后缓存到JVM本地,从而在本地实现RPC远程服务调用技术。
负载均衡的算法
负载均衡算法:rest接口第几次请求数%服务器集群总数量 = 实际调用服务器下表,每次服务器重启rest接口计数从1开始
例:
如果这里有y台机器
x为访问的次数
负载均衡算法就是 x % y => 访问的下标(注:如果重启服务器将从第一次开始)
使用entity返回
@GetMapping("/getForEntity/{id}")
public CommonResult<Payment> queryById2(@PathVariable Long id){
ResponseEntity<CommonResult> entity = restTemplate.getForEntity(PAYMENT_URL + "payment/get/"+id,CommonResult.class);
//表示返回编码是2开头的
if(entity.getStatusCode().is2xxSuccess