0
点赞
收藏
分享

微信扫一扫

Nacos阶段知识点

云卷云舒xj 2022-01-20 阅读 50

服务负载均衡问题

服务负载均衡

当只有一个服务实例时,不需要考虑负载均衡的问题,当服务并发访问需求很大时,就需要启动创建多个服务实例,从而提高执行效率,因此会采用一些均衡策略(轮询,权重,随机,hash)的处理并发请求

LoadBalancerClient

作用:LoadBalancerClient对象可以从nacos中基于服务名获取服务实例,然后在工程中基于算法实现负载均衡的调用,LoadBalancerClient为springcloud提供负载均衡器客户端

应用:

在这里插入图片描述

LoadBalancerClient继承了ServiceInstanceChooser

RibbonLoadBalancerClient实现了LoadBalancerClient

当调用choose方法时使用的是RibbonLoadBalancerClient中的方法

方法一:

在消费者的controller类中注入LoadBalancerClient,在调用另一个服务的方法中,使用loadBalancerClient.run("服务名");获取服务对象,默认为轮询,最后再使用restTemplate.getForObject(url,String.class);调用远程服务

方法二:

在配置类或启动类对RestTemplate对象构建时,在将其@Bean交给Spring容器管理基础上,加入@LoadBalanced注解,当添加此注解后,在Spring启动容器的时候就会设置一个LoadBalancerInterceptor的拦截器,当此RestTemplate对象发送请求时会被拦截,他的作用就是负载均衡,底层执行完负载均衡的业务(核心逻辑在loadBalancer)后放行,实现对其的负载均衡逻辑

Feign

在这里插入图片描述

为啥要有他:服务消费放基于rest请求服务提供方的服务时,直接方式是自己拼接url,拼接参数然后实现服务调用,代码复杂,并且不容易维护,此时feign诞生

他是啥:Feign是一种声明式Web服务客户端(只需要给我参数,我在底层进行业务操作,并返回结果),Fegin是靠近Consumer的,Consumer调用Fegin,让其封装了消费者的request,之后发给provider,返回组装response,最后响应到Consumer

举报

相关推荐

JAVA阶段考内容知识点的梳理

ibaits知识点

jquery知识点

Hadoop知识点

CSS知识点

0 条评论