分布式RPC框架:Dubbo架构解析!使用Dubbo实现负载均衡

本文涉及的产品
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
云解析 DNS,旗舰版 1个月
简介: 本文首先介绍了分布式架构系统中远程RPC调用服务框架Dubbo的应用架构,分析了DUbbo应用架构中各个组件的作用。然后重点介绍了Dubbo中服务治理相关的负载均衡策略,分析了不同的负载均衡策略各自的特点。最后说明了在分布式项目中服务端级别,客户端级别,服务端方法级别和客户端方法级别的具体负载均衡配置。通过这篇文章,可以了解熟悉Dubbo架构的负载均衡策略和使用方式。

Dubbo应用架构

在这里插入图片描述

  • (init)在Dubbo容器Container中启动start容器上的提供者Provider
  • (init)提供者Provider注册register服务到注册中心Registry
  • (init)消费者Consumer从注册中心Registry订阅subscribe服务
  • (async)注册中心Registry给消费者Consumer通知notify
  • (sync)消费者Consumer调用invoke服务提供者Provider
  • (async)监控中心Monitor监控服务消费者Consumer和服务提供者Provider的使用情况,统计count服务请求次数

Dubbo负载均衡

  • 在集群负载均衡时,Dubbo提供多种负载均衡策略,缺省为random随机调用, 也可以自定义负载据均衡策略

负载均衡策略

Random LoadBalance
  • 随机负载均衡调用: 按权重设置随机概率
  • 在一个界面上碰撞的概率越高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重
RoundRobin LoadBalance
  • 轮询负载均衡调用: 按公约后的权重设置轮询比率
  • 存在慢的提供者累积请求的问题:当第二台机器很慢但没有挂掉,当请求第二台时就会卡在那,导致所有请求都卡在第二台上
LeastActive LoadBalance
  • 最少活跃调用数负载均衡调用: 相同活跃数的随机,活跃数指调用前后计数差
  • 使慢的提供者收到更少的请求数,因为越慢的提供者的调用前后计数差越大
ConsistentHash LoadBalance
  • 一致性Hash负载均衡调用: 相同的参数请求总是发送到同一提供者
  • 当某一台提供者挂掉时原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动
  • 缺省只对第一个参数Hash,如果要修改,配置
<dubbo:parameter key="hash.arguments" value="0,1">
  • 缺省用160份虚拟节点,如果要修改,配置
<dubbo:parameter key="hash.nodes" value="320"/>

负载均衡配置

  • 服务端服务级别
<dubbo:service interface="接口类" loadbalance="roundrobin" />
  • 客户端服务级别
<dubbo:reference interface="接口类" loadbalance="roundrobin" />
  • 服务端方法级别
<dubbo:service interface="接口类">
    <dubbo:method name="方法" loadbalance="roundrobin" />
</dubbo:service >
  • 客户端方法级别
<dubbo:reference interface="接口类">
    <dubbo:method name="方法" loadbbalance="roundrobin">
</dubbo:reference>
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
2月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
2月前
|
负载均衡 Java 应用服务中间件
微服务分布式系统架构之zookeeper与dubbor-1
微服务分布式系统架构之zookeeper与dubbor-1
|
1月前
|
运维 供应链 安全
SD-WAN分布式组网:构建高效、灵活的企业网络架构
本文介绍了SD-WAN(软件定义广域网)在企业分布式组网中的应用,强调其智能化流量管理、简化的网络部署、弹性扩展能力和增强的安全性等核心优势,以及在跨国企业、多云环境、零售连锁和制造业中的典型应用场景。通过合理设计网络架构、选择合适的网络连接类型、优化应用流量优先级和定期评估网络性能等最佳实践,SD-WAN助力企业实现高效、稳定的业务连接,加速数字化转型。
SD-WAN分布式组网:构建高效、灵活的企业网络架构
|
1月前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
1月前
|
消息中间件 关系型数据库 Java
‘分布式事务‘ 圣经:从入门到精通,架构师尼恩最新、最全详解 (50+图文4万字全面总结 )
本文 是 基于尼恩之前写的一篇 分布式事务的文章 升级而来 , 尼恩之前写的 分布式事务的文章, 在全网阅读量 100万次以上 , 被很多培训机构 作为 顶级教程。 此文修改了 老版本的 一个大bug , 大家不要再看老版本啦。
|
1月前
|
存储 安全 API
单元化架构,分布式系统的新王!
【10月更文挑战第9天】
126 0
单元化架构,分布式系统的新王!
|
2月前
|
负载均衡 监控 Dubbo
分布式框架-dubbo
分布式框架-dubbo
|
2月前
|
缓存 负载均衡 Dubbo
Dubbo技术深度解析及其在Java中的实战应用
Dubbo是一款由阿里巴巴开源的高性能、轻量级的Java分布式服务框架,它致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
81 6
|
1月前
|
存储 SQL 消息中间件
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
Hadoop-26 ZooKeeper集群 3台云服务器 基础概念简介与环境的配置使用 架构组成 分布式协调框架 Leader Follower Observer
49 0
|
2月前
|
XML 负载均衡 监控
分布式-dubbo-简易版的RPC框架
分布式-dubbo-简易版的RPC框架

热门文章

最新文章

下一篇
无影云桌面