【成为架构师3-5】服务化:必须搞定负载均衡

2024-02-21 09:18

本文主要是介绍【成为架构师3-5】服务化:必须搞定负载均衡,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

系列文章是博主对沈剑的《架构师训练营》分享内容的个人笔记总结,原内容公众号“成为架构师”。

目录

        • 负载均衡方法论
        • 同构环境下的负载均衡
        • 静态权重
        • 动态权重
        • 过载保护

本篇是对微服务架构中实现负载均衡的一个通用思路的阐述

负载均衡方法论
  1. 同构环境下,重点在于 “均匀”
  2. 异构环境下,重点在于 “负载与能力匹配”
同构环境下的负载均衡

在同构环境下,负载均衡的实现基本上不需要额外的支持,在实现高并发、高可用的基础设施中:客户端到反向代理由dns轮询完成;反向代理到站点由nginx来完成;站点到服务由连接池完成;服务到数据层也是由数据层框架的客户端提供的连接池来完成。

因为是同构的,所以均衡策略是简单,轮询,随机的方式都可以实现。

本篇的重点是异构环境下的负载均衡。

静态权重

静态权重和同构环境下的“均衡方式”几乎是一样的,若按照 1:1:1配置下游的权重,那么就是均衡,可以说均衡是静态权重的一个特殊例子
在这里插入图片描述
静态权重一个最大的问题它是静态的,它是无法实时变化的,过载保护等也无法进行实施,但它是最快的也是成本最低的。

动态权重

动态权重有两个要点:

  1. 如何标识服务的处理能力
  2. 如何设计动态权重

服务的处理能力由调用方说了算,如果服务能够正常返回那么说明能力可以,如果超时了说明服务不能承受当前的流量压力

设计动态权重的原则就是:成功加小分,失败减大分

举个例子,先规定分值区间为【0,100】假设三个集群的下游服务service-1、service-2、service-3,三个服务的初始分值都是60,也就是说,在最初负载是均匀的。

随着时间的推移:

  • 处理能力强的服务处理成功的请求越来越多
  • 处理能力相对弱的服务偶尔有超时

最后动态权重的增减,变化为:service1-100分,service2-60分,service3-40分

那么这三个service负载比就是:5:3:2,service1会处理一半的请求,符合按照能力进行负载均衡。

过载保护

什么是过载保护:当服务过载的时候很有可能造成我们说的“雪崩”,服务的流量到达处理能力的峰值,随之再增加流量,处理成功的请求直线下降,服务进入不可用的状态。

过载保护也有两种方式,一种是静态的,一种是动态的。

静态的过载就是设定一个流量阈值,超过这个阈值就不会再有多的请求了。

动态的过载保护和动态的负载均衡策略是相似的

  1. 连接代表服务,分值代表服务(连接)的处理能力
  2. 处理成功加小分,处理失败减大分
  3. 临界边界喘口小气(减少流量、短时)
  4. 死亡状态喘口大气(没有流量、可能时间较长)

过载保护的核心是为了不掉底,过载保护是实施在集群中的某一个节点的,本来应该由该节点处理的流量转由其它节点处理。

如果整个集群达到过载状态,那么只能依靠丢弃请求来实现自我保护,集群的过载保护策略和某一节点的策略是不同的。


下一篇会讲讲微服务中的连接池组件,它是微服务架构中重要的基础设施之一

上一篇回顾:【成为架构师3-4】服务化:必须支持高并发
下一篇更精彩:【成为架构师3-6】服务化:连接池,微服务的基础组件

这篇关于【成为架构师3-5】服务化:必须搞定负载均衡的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/731264

相关文章

Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单

《Springboot的ThreadPoolTaskScheduler线程池轻松搞定15分钟不操作自动取消订单》:本文主要介绍Springboot的ThreadPoolTaskScheduler线... 目录ThreadPoolTaskScheduler线程池实现15分钟不操作自动取消订单概要1,创建订单后

Java架构师知识体认识

源码分析 常用设计模式 Proxy代理模式Factory工厂模式Singleton单例模式Delegate委派模式Strategy策略模式Prototype原型模式Template模板模式 Spring5 beans 接口实例化代理Bean操作 Context Ioc容器设计原理及高级特性Aop设计原理Factorybean与Beanfactory Transaction 声明式事物

Hadoop集群数据均衡之磁盘间数据均衡

生产环境,由于硬盘空间不足,往往需要增加一块硬盘。刚加载的硬盘没有数据时,可以执行磁盘数据均衡命令。(Hadoop3.x新特性) plan后面带的节点的名字必须是已经存在的,并且是需要均衡的节点。 如果节点不存在,会报如下错误: 如果节点只有一个硬盘的话,不会创建均衡计划: (1)生成均衡计划 hdfs diskbalancer -plan hadoop102 (2)执行均衡计划 hd

MySQL数据库宕机,启动不起来,教你一招搞定!

作者介绍:老苏,10余年DBA工作运维经验,擅长Oracle、MySQL、PG、Mongodb数据库运维(如安装迁移,性能优化、故障应急处理等)公众号:老苏畅谈运维欢迎关注本人公众号,更多精彩与您分享。 MySQL数据库宕机,数据页损坏问题,启动不起来,该如何排查和解决,本文将为你说明具体的排查过程。 查看MySQL error日志 查看 MySQL error日志,排查哪个表(表空间

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

系统架构师-ERP+集成

ERP   集成平台end:就懒得画新的页

一种改进的red5集群方案的应用、基于Red5服务器集群负载均衡调度算法研究

转自: 一种改进的red5集群方案的应用: http://wenku.baidu.com/link?url=jYQ1wNwHVBqJ-5XCYq0PRligp6Y5q6BYXyISUsF56My8DP8dc9CZ4pZvpPz1abxJn8fojMrL0IyfmMHStpvkotqC1RWlRMGnzVL1X4IPOa_  基于Red5服务器集群负载均衡调度算法研究 http://ww

分享5款免费录屏的工具,搞定网课不怕错过!

虽然现在学生们不怎么上网课, 但是对于上班族或者是没有办法到学校参加课程的人来说,网课还是很重要的,今天,我就来跟大家分享一下我用过的几款录屏软件=,看看它们在录制网课时的表现如何。 福昕录屏大师 网址:https://www.foxitsoftware.cn/REC/ 这款软件给我的第一印象就是界面简洁,操作起来很直观。它支持全屏录制,也支持区域录制,这对于我这种需要同时录制PPT和老师讲

【微服务】Ribbon(负载均衡,服务调用)+ OpenFeign(服务发现,远程调用)【详解】

文章目录 1.Ribbon(负载均衡,服务调用)1.1问题引出1.2 Ribbon负载均衡1.3 RestTemplate整合Ribbon1.4 指定Ribbon负载均衡策略1.4.1 配置文件1.4.2 配置类1.4.3 定义Ribbon客户端配置1.4.4 自定义负载均衡策略 2.OpenFeign面向接口的服务调用(服务发现,远程调用)2.1 OpenFeign的使用2.1 .1创建

如何成为一个优秀的测试工程师

链接地址:http://blog.csdn.net/KerryZhu/article/details/5250504 我一直在想,如何将自己的测试团队打造成世界一流的团队?流程、测试自动化、创新、扁平式管理、国际标准制定、测试社区贡献、…… 但首先一点是明确的,就是要将每一个测试工程师打造成优秀的测试工程师,优秀的团队必须由优秀的成员构成。所以,先讨论“如何成为一个优秀的测试工程师”,