广告
返回顶部
首页 > 资讯 > 精选 >springcloud负载均衡策略有哪些
  • 199
分享到

springcloud负载均衡策略有哪些

2024-04-02 19:04:59 199人浏览 泡泡鱼
摘要

SpringCloud负载均衡策略有:1、Ribbon,它是一个基于Netflix Ribbon实现的一套客户端负载均衡工具;2、Fegin的配置,它是一个声明式的WEB服务客户端,能够更加容易编写Web服务客户端,只要在api层建设一个接

SpringCloud负载均衡策略有:1、Ribbon,它是一个基于Netflix Ribbon实现的一套客户端负载均衡工具;2、Fegin的配置,它是一个声明式的WEB服务客户端,能够更加容易编写Web服务客户端,只要在api层建设一个接口并添加注解即可。

springcloud负载均衡策略有哪些

具体内容如下:

Ribbon 

是基于Netflix Ribbon实现的一套客户端 负载均衡的工具,类似Nginx主要功能时提供客户端的软件负载均衡算法LB就是负载均衡,集中式(F5),进程内(Nginx),消费者可以自动看从Eureka中拿到对应的服务列表,默认进行轮询RoundRobinRule

下图是RestTemplate的自带的7中均衡策略

springcloud负载均衡策略有哪些我们在之前通过Ribbon+RestTemplate实现调用服务的时候,在获取RestTemplate的方法上加了@LoadBalanced ,实现默认轮询,如果需要更改其均衡策略,则在配置类中声明想要的均衡策略

@Configuration

public class RestConfig {

    @Bean    //通过RestTemplate来实现调用接口

    @LoadBalanced     //表示RestTemplate开启了负载均衡

    public RestTemplate getRestTemplate(){

        return  new RestTemplate();

    }

    //重新创建一个均衡策略,表示不使用默认

    @Bean

    public IRule getIReule(){ //通过获取一个IRule对象,

        return  new RandomRule();  //达到的目的,用我们重新选择的随机,替代默认的轮训方式

    }

}

消费者controller层

//声明一个接口

//    private static  final String Http_NAME = "http://localhost:8001/product/";

    private static  final String HTTP_NAME = "http://MICROSERVICE-PRODUCT";

    @Autowired

    private RestTemplate restTemplate;

    @Resource

    private DiscoveryClient client;   //我这个微服务想要被别人去发现

    @GetMapping("/consum/find/{id}")

    public User findone(@PathVariable("id")Integer id){

        String url = HTTP_NAME+"/product/findone/"+id;

        return  (User) restTemplate.getForObject(url,User.class);

    }

    @GetMapping("/consum/findAll")

    public List<User> getAll(){

        List<User> users = restTemplate.getForObject(HTTP_NAME + "/product/list", List.class);

        return users;

    }

Fegin的配置 

Feign是一个声明式的Web服务客户端,使得编写Web服务客户端变得非常容易,在api层只需要创建一个接口,然后在上面添加注解即可

步骤如下:

(1)导入依赖,创建接口的微服务,以及消费者微服务都需要引入

 <!-- Feign依赖 -->

 <dependency>

     <groupId>org.springframework.cloud</groupId>

     <artifactId>spring-cloud-starter-openfeign</artifactId>

     <version>2.1.0.RELEASE</version>

</dependency>

(2)创建消费者层

@RestController

public class Usercontroller {

    @Resource  //调用的是API层的接口

    private UserService userService;

    @GetMapping("/consum/find/{id}")

    public User findone(@PathVariable("id")Integer id){

        return  userService.findById(id);

    }

    @GetMapping("/consum/findAll")

    public List<User> getAll(){

        return userService.findAll();

    }

}

(3)在消费者的模块的启动类上加上 @EnableFeignClients(basePackages = {"com.ghh"}) //扫描另外一个Feign的接口

@SpringBootApplication

@EnableEurekaClient

@EnableFeignClients(basePackages = {"com.ghh"}) //扫描另外一个Feign的接口

public class ConsumStart_Feign {

    public static void main(String[] args) {

        SpringApplication.run(ConsumStart_Feign.class,args);

    }

}

(4)在api层要创建一个接口,以及加上一个注解@FeignClient(value = "MICROSERVICE-PRODUCT"),表名调用的提供者或者服务名称

@FeignClient(value = "MICROSERVICE-PRODUCT")

public interface UserService {

        @GetMapping("/product/findone/{id}")

        public User findById(@PathVariable("id") Integer id);

        @GetMapping("/product/list")

        public List<User> findAll();

}

三、Ribbon+RestTemplate和Feign的区别

 1、实际开发中,对服务依赖的调用可能不止一处,往往一个接口会被多处调用,如果使用Ribbon+RestTemplate,就需要在每一个模块都要创建一个配置类,而且,各社区中javaweb也倾向于面向接口编程

 2、通常针对每个微服务自行封装一些客户端类来包装这些依赖服务的调用,所以,Feign在此基础上做了进一步封装,在Feign的实现下,我们只需要创建一个接口并使用注解的方式来配置它(以前是Dao接口上面标注Mapper注解,现在是一个微服务接口上面标注一个Feign注解即可),完成对服务提供方的接口绑定

 3、使用Feign是通过接口的方法调用Rest服务,该请求发送给Eureka服务器,通过Feign直接找到服务接口。Feign融合了Ribbon技术,所以也支持负载均衡。

 4、在使用Feign的时候其实就是远程通过调用标注微服务的对应接口(每一个方法上的路径),来获取返回值

--结束END--

本文标题: springcloud负载均衡策略有哪些

本文链接: https://www.lsjlt.com/news/109243.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • springcloud负载均衡策略有哪些
    springcloud负载均衡策略有:1、Ribbon,它是一个基于Netflix Ribbon实现的一套客户端负载均衡工具;2、Fegin的配置,它是一个声明式的Web服务客户端,能够更加容易编写Web服务客户端,只要在api层建设一个接...
    99+
    2022-10-23
  • Dubbo有哪些负载均衡策略
    Dubbo中负载均衡策略有:1、随机选取提供者策略,能够随机转发请求;2、轮循选取提供者策略,可以使请求平均分布;3、最少活跃调用策略,能够让慢提供者接收更少的请求;4、一致性Hash策略,相同参数请求总是发到同一提供者,如是一台机器宕机,...
    99+
    2022-10-09
  • nginx负载均衡策略有哪些
    nginx负载均衡策略有:1、轮询调度方式,RR算法策略;2、weight权重方式策略;3、ip_hash基于客户端IP的分配方式;4、least_conn,把请求转发给连接数较少的后端服务器;5、第三方策略,实现需要安装第三方插件。具体内...
    99+
    2022-10-22
  • 负载均衡的策略有哪些
    负载均衡的策略有:轮询,每个请求都要按顺序分派到不同的后端网络服务器。特定权重,用于后端开发网络服务器性能不匀的状况。IP关联ip_hash,每个请求按浏览ip的hash结果分派,这样就会让每一个浏览量固定不动浏览一个后端开发网络服务器,能...
    99+
    2022-10-18
  • springcloud负载均衡策略怎么实现
    在Spring Cloud中,负载均衡策略的实现主要依赖于Ribbon和Eureka。Ribbon是Netflix开源的负载均衡组件...
    99+
    2023-09-27
    springcloud
  • SpringCloud Ribbon中的7种负载均衡策略
    SpringCloud Ribbon中的7种负载均衡策略 Ribbon 介绍负载均衡设置7种负载均衡策略1.轮询策略2.权重策略3.随机策略4.最小连接数策略5.重试策略6.可用性敏感策略7....
    99+
    2023-09-07
    spring cloud ribbon 负载均衡
  • SpringCloud Ribbon负载均衡使用策略是什么
    这篇“SpringCloud Ribbon负载均衡使用策略是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Sp...
    99+
    2023-07-05
  • nginx负载均衡的策略
    本文同步发布于 http://laowubiji.com/index.php/2023/02/01/nginx_config/ nginx的负载均衡策略有六种: 1、轮询(默认策略,nginx自带策略):我上面的例子就是轮询的方式,它是...
    99+
    2023-09-02
    nginx 负载均衡 服务器 Powered by 金山文档
  • 什么是负载均衡?有哪几种策略?
         什么是负载均衡?有哪几种策略?负载均衡是指平均分到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。建立在现有网络结构上,提供了一...
    99+
    2023-06-04
  • Dubbo负载均衡策略介绍
    目录1、负载均衡基本配置2、自定义负载均衡器1、负载均衡基本配置 负载均衡(Load Balance), 其实就是将请求分摊到多个操作单元上进行执行,从而共同完成工作任务。 负载均衡...
    99+
    2022-11-13
  • Nginx负载均衡策略详解
    本篇内容介绍了“Nginx负载均衡策略详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文只是展示了部分nginx实现负载均衡时可以使用的...
    99+
    2023-06-03
  • nginx负载均衡策略是什么
    Nginx负载均衡策略是指Nginx服务器在处理客户端请求时,将请求分发到多个后端服务器上以实现负载均衡的一种策略。常见的Nginx...
    99+
    2023-09-02
    负载均衡 nginx
  • apache负载均衡策略是什么
    Apache负载均衡策略是指通过Apache服务器来分配请求到多个后端服务器上,以实现负载均衡。常见的Apache负载均衡策略有以下...
    99+
    2023-09-06
    apache 负载均衡
  • ribbon负载均衡策略是什么
    Ribbon负载均衡策略是Netflix开源的一种用于负载均衡的策略。它是一个基于客户端的负载均衡器,主要用于在微服务架构中选择目标...
    99+
    2023-09-07
    ribbon 负载均衡
  • dubbo负载均衡策略如何配置
    Dubbo提供了多种负载均衡策略,可以根据具体的业务需求进行配置。一般情况下,可以在服务提供者和消费者的dubbo配置文件中配置负载...
    99+
    2023-06-13
    dubbo负载均衡策略 负载均衡
  • 负载均衡分发策略是什么
    负载均衡分发策略是一种用于分发网络请求的算法或方法,其目的是将请求分发到服务器集群中的不同节点上,以实现负载均衡和提高系统的性能和可...
    99+
    2023-09-07
    负载均衡
  • 动态负载均衡策略是什么
    动态负载均衡策略是一种根据系统负载情况实时调整流量分配的策略。它通过监控系统中各个节点的负载情况,根据预设的算法在不同节点之间分配请...
    99+
    2023-09-07
    负载均衡
  • linux有哪些负载均衡
    本篇内容介绍了“linux有哪些负载均衡”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ...
    99+
    2023-04-20
    linux
  • linux负载均衡有哪些
    linux负载均衡有:1、bond,它是linux内核自带的多网卡聚合功能;2、iproute2中的多路由,使用ip命令中的nexthop选项从而实现负载均衡;3、iptables+iproute2,iptables是通过修改mark标记来...
    99+
    2022-10-22
  • Nginx负载均衡策略选择与配置
    一、引言在构建高可用的web应用程序时,负载均衡是一个重要的部分。负载均衡可以分发用户请求到后端的多个服务器上,实现资源的合理利用,提高系统的可用性和性能。Nginx是一个功能强大的反向代理服务器,具有高效的负载均衡特性。本文将介绍如何选择...
    99+
    2023-10-21
    配置 nginx 负载均衡
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作