mosn基于延迟负载均衡算法 -- 走得更快,期待走得更稳
这篇文章主要是介绍mosn在v1.5.0中新引入的基于延迟的负载均衡算法。首先会对分布式系统中延迟出现的原因进行剖析,之后介绍mosn都通过哪些方法来降低延迟,最后构建来与生产环境性能分布相近的测试用例来对算法进行验证。
什么是负载均衡
负 载 均 衡是将一组任务分配到一组资源(计算单元)上的过程,目的是使它们的整体处理更有效率。 负载均衡可以优化响应时间,避免负载不均匀导致一些计算节点过载而其他计算节点处于空闲状态
负载均衡在大型分布式系统中是关键的组成部分。负载均衡解决了分布式系统中最重要的两个问题:可伸缩性(scalability)和韧性(resilience)。
-
可伸缩性:应用程序部署在多个相同的副本中。当计算资源不足时可以通过部署额外的副本来增加计算资源,而当计算资源大量冗余时可以通过减少副本来节省成本。通过负载均衡可以将请求负载分布到不同的副本中。 -
韧性:分布式系统的故障是部分的。应用程序通过冗余副本的方式,保证在部分组件故障时仍能正常地提供服务。负载均衡通过感知节点的故障,调整流量的分配,将流量更多地分配到那些能够正常提供服务的节点上。
延迟来自哪里
微服务架构(引用自Microservices Pattern)
-
计算任务本身的复杂度 -
内容的传输过程中的延迟 -
请求排队等待的延迟 -
后台任务活动所导的资源竞争
如何减少延迟
性能问题是局部的
PeakEWMA
P2C(Power of Two Choice)
在mosn的v1.5.0版本中,只有节点权重相同时会使用P2C,当权重不同时会使用EDF进行加权选择。后续会提供可配置的选项。
模拟流量验证
快速失败的挑战
-end-
本文分享自微信公众号 - 京东云开发者(JDT_Developers)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
故障分析 | MySQL 升级到 8.0 变慢问题分析
作者:操盛春 技术专家,任职于爱可生,专注研究 MySQL、OceanBase 源码。 本文来源:原创投稿 * 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 1. 背景介绍 前段时间,客户线上 MySQL 版本从 5.7.29 升级到 8.0.25。 升级完成之后,放业务请求进来,没到一分钟就开始出现慢查询,然后,慢查询越来越多,业务 SQL 出现堆积。 整个过程持续了大概一个小时,直到给某条业务 SQL 对应的表加上索引,问题才得到解决。 有一个比较奇怪的现象是:问题持续的过程中,服务器的系统负载、CPU 使用率、磁盘 IO、网络都处于低峰时期的水平,也就是说,问题很可能不是因为硬件资源不够用导致的。 那么,根本原因到底是什么?让我们一起来揭晓答案~ 2. 原因分析 客户线上环境有一个监控脚本,每分钟执行一次,这个脚本执行的 SQL 如下: select...fromsys.innodb_lock_waitswinnerjoininformation_schema.innodb_trxbonb.trx_id=w.blocking_trx_idinner...
- 下一篇
MySQL的varchar存储原理:InnoDB记录存储结构
摘要:varchar(M) 能存多少个字符,为什么提示最大16383?innodb怎么知道varchar真正有多长?记录为NULL,innodb如何处理?某个列数据占用的字节数非常多怎么办?影响每行实际可用空间的因素有哪些?本篇围绕innodb默认行格式dynamic来说说原理。 本文分享自华为云社区《MySQL的varchar水真的太深了——InnoDB记录存储结构》,作者:砖业洋__ 。 1.InnoDB是干嘛的? InnoDB是一个将表中的数据存储到磁盘上的存储引擎。 2. InnoDB是如何读写数据的? InnoDB处理数据的过程是发生在内存中的,需要把磁盘中的数据加载到内存中,如果是处理写入或修改请求的话,还需要把内存中的内容刷新到磁盘上。 读写磁盘的速度非常慢,和内存读写差了几个数量级,所以当我们想从表中获取某些记录时,InnoDB存储引擎将数据划分为若干个页,以页作为磁盘和内存之间交互的基本单位,InnoDB中页的大小默认为 16 KB。也就是在一般情况下,一次最少从磁盘中读取16KB的内容到内存中,或者一次最少把内存中的16KB内容刷新到磁盘中。 所以当你用postma...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Red5直播服务器,属于Java语言的直播服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7