带你读《Apache Dubbo微服务开发从入门到精通》——三、 负载均衡机制(3)

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
云原生网关 MSE Higress,422元/月
性能测试 PTS,5000VUM额度
简介: 带你读《Apache Dubbo微服务开发从入门到精通》——三、 负载均衡机制(3)

《Apache Dubbo微服务开发从入门到精通》——服务发现与负载均衡——三、 负载均衡机制(2) https://developer.aliyun.com/article/1224434


6) 原理介绍

 

P2C算法

 

Power of Two Choice算法简单但是经典,主要思路如下:

 

对于每次调用,从可用的provider列表中做两次随机选择,选出两个节点providerA和providerB。

 

比较providerA和providerB两个节点,选择其“当前正在处理的连接数”较小的那个节点。

 

adaptive算法

 

代码的github地址

 

• 相关指标

 

cpuLoad

 

image.png

 

该指标在provider端机器获得,并通过invocation的attachment传递给consumer端。

 

rt

rt为一次rpc调用所用的时间,单位为毫秒。

 

timeout

timeout为本次rpc调用超时剩余的时间,单位为毫秒。

 

weight

weight是设置的服务权重。

 

currentProviderTime

provider端在计算cpuLoad时的时间,单位是毫秒

 

 

currentTime

currentTime为最后一次计算load时的时间,初始化为currentProviderTime,单位是毫秒。

 

multiple

 

image.png

 

lastLatency

 

image.png

 

beta

平滑参数,默认为0.5

 

ewma

lastLatency的平滑值

 

image.png

 

inflight

inflight为consumer端还未返回的请求的数量。

 

image.png

对于备选后端机器x来说,若距离上次被调用的时间大于2*timeout,则其load值为0。

 

否则

 

image.png

 

算法实现

 

依然是基于P2C算法。

 

从备选列表中做两次随机选择,得到providerA和providerB

比较providerA和providerB的load值,选择较小的那个。


《Apache Dubbo微服务开发从入门到精通》——服务发现与负载均衡——三、 负载均衡机制(4) https://developer.aliyun.com/article/1224430


相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4天前
|
运维 监控 API
后端开发中的微服务架构:优势与挑战
【8月更文挑战第16天】在软件开发的世界中,微服务架构已经成为一种流行和强大的设计模式。它通过将应用程序分解为一组小型、独立的服务来促进敏捷开发和快速迭代。本文旨在深入探讨微服务架构的核心优势以及实施过程中可能遇到的挑战,帮助读者更好地理解这一现代软件设计方法。
|
1天前
|
消息中间件 NoSQL 持续交付
构建高效微服务架构:后端开发的新范式
【7月更文挑战第50天】在数字化转型的浪潮中,微服务架构已成为推动企业敏捷开发和维护的关键。本文深入探讨了如何构建一个高效的微服务架构,包括选择合适的技术栈、确保服务的可伸缩性与弹性、以及实现持续集成和持续部署(CI/CD)。通过分析具体案例,文章揭示了后端开发者如何在不断变化的技术环境中保持竞争力,并提出了优化策略以提升系统整体性能和可靠性。
|
6天前
|
开发框架 Dubbo 应用服务中间件
微服务开发框架-----Apache Dubbo
这篇文章介绍了Apache Dubbo微服务开发框架,它提供RPC通信和微服务治理能力,支持服务发现、负载均衡和流量治理等功能,并强调了Dubbo在微服务规模化实践和企业级治理方面的优势。
微服务开发框架-----Apache Dubbo
|
11天前
|
存储 监控 API
微服务开发,这10个点你要知道
【8月更文挑战第8天】微服务开发十大要点:1. 服务拆分需专注单一业务功能;2. 采用高效通信协议如gRPC;3. 数据存储独立并解决跨服务一致性;4. 自动化部署流程利用Docker/Kubernetes;5. 容错机制如断路器避免连锁故障;6. 监控与日志体系确保服务健康;7. API设计清晰规范;8. 加强认证加密等安全措施;9. 配置集中管理如Spring Cloud Config;10. 服务治理实现注册与发现。关注这些关键点可提升开发质量和成功率。
|
7天前
|
消息中间件 设计模式 API
后端开发中的微服务架构设计原则
【8月更文挑战第13天】在软件工程的世界中,微服务架构已经成为一种流行的设计模式,它通过将复杂的应用程序分解成一组小的服务来简化开发和部署。本文探讨了微服务背后的设计理念,以及如何在后端开发实践中应用这些原则来构建可扩展、灵活且易于维护的系统。我们将深入讨论服务的划分、通信协议的选择、数据一致性的保障以及容错性策略的实施,旨在为后端开发人员提供一套实用的微服务架构设计指导。
20 1
|
8天前
|
负载均衡 监控 API
构建高效微服务架构:后端开发的新趋势
【7月更文挑战第43天】 在当今软件开发领域,微服务架构已成为推动技术创新与实现业务敏捷性的一股不可忽视的力量。本文旨在深入剖析构建高效微服务架构的核心原则、关键技术和实践挑战,为后端开发者提供一套行之有效的解决方案。通过精心设计的模块化服务、智能的服务发现机制、弹性的负载均衡策略以及持续的性能优化实践,我们能够确保系统的可扩展性、稳定性及快速响应市场变化的能力。文章将详细探讨如何通过容器化技术、服务网格、API网关等现代工具和框架,来构建和维护一个高效的微服务系统。
|
12天前
|
负载均衡 Dubbo 应用服务中间件
框架巨擘:Dubbo如何一统异构微服务江湖,成为开发者的超级武器!
【8月更文挑战第8天】在软件开发中,微服务架构因灵活性和可扩展性备受欢迎。面对异构微服务的挑战,Apache Dubbo作为高性能Java RPC框架脱颖而出。它具备服务注册与发现、负载均衡及容错机制等核心特性,支持多种通信协议和序列化方式,能有效连接不同技术栈的微服务。Dubbo的插件化设计保证了面向未来的扩展性,使其成为构建稳定高效分布式系统的理想选择。
26 5
|
11天前
|
消息中间件 监控 API
后端开发之巅:探索微服务架构的奥秘
在数字化浪潮中,微服务架构成为软件开发的宠儿。它以灵活性、可扩展性和独立性著称,让复杂应用的管理变得简单。本文将带你走进微服务的世界,从基础概念到设计原则,再到实际应用案例,一步步揭开微服务架构的神秘面纱。让我们一起思考甘地的话:“你必须成为你希望在世界上看到的改变。”在后端开发领域,这意味着我们需要拥抱变化,用微服务架构创造更好的软件生态。
|
14天前
|
敏捷开发 消息中间件 持续交付
探索后端开发中的微服务架构
在数字化时代,后端开发的复杂性与日俱增。微服务架构作为一种解决方案,旨在通过将复杂的应用程序分解为一组小的、独立的服务来简化开发和部署。这种架构模式不仅提高了系统的可伸缩性和灵活性,还促进了持续交付的能力。本文将深入探讨微服务的概念、优势以及面临的挑战,并通过实际案例分析其在现代后端开发中的应用。
|
12天前
|
API 数据库 开发者
探索后端开发中的微服务架构实践
本文旨在深入探讨微服务架构在后端开发领域的实际应用及其带来的变革。通过具体案例分析,我们将了解微服务如何优化复杂系统的开发与维护,并讨论实施过程中的挑战与解决策略。文章还将提供一些实用的建议,帮助开发者更好地构建和部署微服务应用。

推荐镜像

更多