广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Dubbo负载均衡策略介绍
  • 685
分享到

Dubbo负载均衡策略介绍

2024-04-02 19:04:59 685人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

目录1、负载均衡基本配置2、自定义负载均衡器1、负载均衡基本配置 负载均衡(Load Balance), 其实就是将请求分摊到多个操作单元上进行执行,从而共同完成工作任务。 负载均衡

1、负载均衡基本配置

负载均衡(Load Balance), 其实就是将请求分摊到多个操作单元上进行执行,从而共同完成工作任务。

负载均衡策略主要用于客户端存在多个提供者时进行选择某个提供者。

集群负载均衡时,dubbo 提供了多种均衡策略(包括随机、轮询、最少活跃调用数、一致性Hash),缺省为random随机调用。

这块儿主要是来自于官方文档,已经写得很详细了

配置负载均衡策略,既可以在服务提供者一方配置,也可以在服务消费者一方配置,如下:

(注:这里只介绍了基于注解的配置方式,其他方式参考官方文档)

//在服务消费者一方配置负载均衡策略
@Reference(check = false,loadbalance = "random")
//在服务提供者一方配置负载均衡
@Service(loadbalance = "random")
public class HelloServiceImpl implements HelloService {
    public String sayHello(String name) {
        return "hello " + name;
    }
}

2、自定义负载均衡器

负载均衡器在Dubbo中的SPI接口是org.apache.dubbo.rpc.cluster.LoadBalance , 可以通过实现这个接口来实现自定义的负载均衡规则。

(1)自定义负载均衡器

在上一节的案例基础上创建名称为dubbo-spi-loadbalance的Maven模块,并创建负载均衡器

OnlyFirstLoadbalancer。这里功能只是简单的选取所有机器中的第一个(按照字母排序 + 端口排序)。

导入dubbo依赖

        <dependency>
            <groupId>org.apache.dubbo</groupId>
            <artifactId>dubbo</artifactId>
            <version>2.7.5</version>
        </dependency>
package com.laGou.loadbalance;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.RpcException;
import org.apache.dubbo.rpc.cluster.LoadBalance;
import java.util.List;
public class OnlyFirstLoadbalancer implements LoadBalance {
    @Override
    public <T> Invoker<T> select(List<Invoker<T>> list, URL url, Invocation invocation) throws RpcException {
        // 所有的服务提供者 按照 ip + 端口 排序,选择第一个
        // List<Invoker<T>> list 包含了所有服务提供者的信息
      return  list.stream().sorted((i1, i2) -> {
            final int ipCompare = i1.getUrl().getIp().compareTo(i2.getUrl().getIp());
            if (ipCompare == 0) {
                return Integer.compare(i1.getUrl().getPort(), i2.getUrl().getPort());
            }
            return ipCompare;
        }).findFirst().get();
    }
}

(2)配置负载均衡器

在dubbo-spi-loadbalance工程的META-INF/dubbo 目录下新建org.apache.dubbo.rpc.cluster.LoadBalance 文件,并将当前类的全名写入

onlyFirst=包名.负载均衡器 (onlyFirst:只是一个标识,配置自定义负载均衡是引用的名称)

onlyFirst=com.lagou.loadbalance.OnlyFirstLoadbalancer

(3)在服务提供者工程实现类中编写用于测试负载均衡效果的方法,启动不同端口时,方法返回的信息不同

(4)启动多个服务,要求他们使用同一个接口注册到同一个注册中心,但是他们的dubbo通信端口不同

(5)在服务消费方指定自定义负载均衡器 onlyFirst

(6)测试自定义负载均衡的效果

到此这篇关于Dubbo负载均衡策略介绍的文章就介绍到这了,更多相关Dubbo负载均衡 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Dubbo负载均衡策略介绍

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

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

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

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

下载Word文档
猜你喜欢
  • Dubbo负载均衡策略介绍
    目录1、负载均衡基本配置2、自定义负载均衡器1、负载均衡基本配置 负载均衡(Load Balance), 其实就是将请求分摊到多个操作单元上进行执行,从而共同完成工作任务。 负载均衡...
    99+
    2022-11-13
  • Dubbo有哪些负载均衡策略
    Dubbo中负载均衡策略有:1、随机选取提供者策略,能够随机转发请求;2、轮循选取提供者策略,可以使请求平均分布;3、最少活跃调用策略,能够让慢提供者接收更少的请求;4、一致性Hash策略,相同参数请求总是发到同一提供者,如是一台机器宕机,...
    99+
    2022-10-09
  • dubbo负载均衡策略如何配置
    Dubbo提供了多种负载均衡策略,可以根据具体的业务需求进行配置。一般情况下,可以在服务提供者和消费者的dubbo配置文件中配置负载...
    99+
    2023-06-13
    dubbo负载均衡策略 负载均衡
  • dubbo负载均衡策略(XML、注解、SpringBoot配置)
    在Dubbo中,可以通过XML配置、注解和Spring Boot配置来配置负载均衡策略。1. XML配置:在XML配置文件中,可以使...
    99+
    2023-09-20
    dubbo
  • nginx负载均衡的策略
    本文同步发布于 http://laowubiji.com/index.php/2023/02/01/nginx_config/ nginx的负载均衡策略有六种: 1、轮询(默认策略,nginx自带策略):我上面的例子就是轮询的方式,它是...
    99+
    2023-09-02
    nginx 负载均衡 服务器 Powered by 金山文档
  • Nginx负载均衡策略详解
    本篇内容介绍了“Nginx负载均衡策略详解”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!本文只是展示了部分nginx实现负载均衡时可以使用的...
    99+
    2023-06-03
  • 关于Apache负载均衡介绍
    Apache负载均衡(Apache Load Balancer)是一种在多台服务器之间分配工作负载的技术。它通过将客户端请求分发到多...
    99+
    2023-09-23
    Apache
  • nginx负载均衡策略有哪些
    nginx负载均衡策略有:1、轮询调度方式,RR算法策略;2、weight权重方式策略;3、ip_hash基于客户端IP的分配方式;4、least_conn,把请求转发给连接数较少的后端服务器;5、第三方策略,实现需要安装第三方插件。具体内...
    99+
    2022-10-22
  • springcloud负载均衡策略有哪些
    springcloud负载均衡策略有:1、Ribbon,它是一个基于Netflix Ribbon实现的一套客户端负载均衡工具;2、Fegin的配置,它是一个声明式的Web服务客户端,能够更加容易编写Web服务客户端,只要在api层建设一个接...
    99+
    2022-10-23
  • 负载均衡的策略有哪些
    负载均衡的策略有:轮询,每个请求都要按顺序分派到不同的后端网络服务器。特定权重,用于后端开发网络服务器性能不匀的状况。IP关联ip_hash,每个请求按浏览ip的hash结果分派,这样就会让每一个浏览量固定不动浏览一个后端开发网络服务器,能...
    99+
    2022-10-18
  • 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的负载均衡可以通过配置文件中的标签的loadbalance属性来进行配置,默认支持四种负载均衡策略:1. Random L...
    99+
    2023-08-26
    dubbo
  • Mycat的负载均衡类型介绍
    事务内的SQL,默认走写节点,以注释开头,则会根据balance=“1”或“2”去获取 b. 非事务内的SQL,开启读写分离默认根据balance=“1”或“2”去获取,以注释开头则会走写解决部分已经开启读...
    99+
    2022-10-18
  • springcloud负载均衡策略怎么实现
    在Spring Cloud中,负载均衡策略的实现主要依赖于Ribbon和Eureka。Ribbon是Netflix开源的负载均衡组件...
    99+
    2023-09-27
    springcloud
  • 负载均衡分发策略是什么
    负载均衡分发策略是一种用于分发网络请求的算法或方法,其目的是将请求分发到服务器集群中的不同节点上,以实现负载均衡和提高系统的性能和可...
    99+
    2023-09-07
    负载均衡
  • 动态负载均衡策略是什么
    动态负载均衡策略是一种根据系统负载情况实时调整流量分配的策略。它通过监控系统中各个节点的负载情况,根据预设的算法在不同节点之间分配请...
    99+
    2023-09-07
    负载均衡
  • dubbo负载均衡怎么实现
    Dubbo负载均衡可以通过以下方式实现:1. 随机负载均衡(Random Load Balance):每次从可用的服务提供者中随机选...
    99+
    2023-10-20
    dubbo
  • dubbo负载均衡如何配置
    在Dubbo中,负载均衡可以通过配置来进行调整。可以通过在提供者和消费者端的Dubbo配置文件中进行相应的配置。在提供者端的配置文件...
    99+
    2023-09-02
    负载均衡
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作