负载机制概述

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
EMR Serverless StarRocks,5000CU*H 48000GB*H
简介: 随着信息科技的不断发展,人们对互联网科技的认知不断更新、依赖性随之增强,互联网平台的实效性、稳定性也越发重要,本文将从通过Springcloud框架以生产者消费者模式讲解负载均衡机制。

所谓负载均衡最简单的理解就是将一些高频次操作分摊到多个操作单元处理,缓解单节点单元处理的压力,提升平台整体的健壮性。那么如何去实现负载均衡机制呢?这里既然提到负载均衡机制也不得不说一下负载均衡都有哪些算法模式,我们常用的算法模式包括:轮询策略、加权轮询策略、随机策略等等。

轮询策略:所谓轮询策略从字面上讲,就是我们将服务以多节点的形式进行注册或者管理,服务在被调用的时候,会按照次序依次被触发调用,每个服务被调用的概率是一样的。

加权轮询策略:所谓加权轮询策略,从字面上看,就是对轮询策略进行加权。那么为什么进行加权处理呢。平时我们对服务进行多节点部署,部署的时候我们会发现服务器和服务器之间从性能、吞吐量上讲还是有差距的,这些差距将会导致用户在请求某些操作中反应速率时好时坏,那么,我们就需要多多节点服务进行加权处理,对性能好的服务器权重高一些(被调用的概率会提升),对性能差的服务器权重低一些,以保证服务的稳定性。

随机策略:从上面的讲解,我们就不难理解随机策略了,既然随机,那就表示着服务的调用是随机的,没有次序的。

实现负载均衡机制的方式方法也有很多种,如传统的服务器集、nginx代理、kafka等等,接下来我将从Springcloud入手,讲解SpringCloud是如何实现负载均衡。

提到springcloud负载均衡,大家不难想到springcloud的注册中心eurekaeureka做为Springcloud的核心作用及其重要。它管理者平台所有的服务,包括服务注册、服务发现、服务心跳监控等等,同时它自身也可以通过简单的位置实现的负载。首先我们要关闭服务保护模式(当然这种方式不建议使用)

image.png

关闭保护模式后,配置服务的心跳检测时长

image.png

这样节点服务在异常中断后,会被自动从eureka中剔除,至于调用,我们可以直接通过服务名去调用已经注册到eureka中的服务。eureka会自动去触发相同服务名下的一个节点去执行任务。当然这种方式安全性不高,不建议使用,接下来我们主要通过生产者消费者模式去讲解springcloud的负载机制,那么什么可以作为生产者、什么可以作为消费者呢。一般我们可以将处理业务的服务作为生产者,面向用户交互的作为消费者。然后生产者我们可以多节点部署、消费者加入缓存机制(redis),熔断机制(hystrix)去调用生产者给用户提供数据服务。示意图如下:

image.png

从上图我们可以看出,与用户有直接交互的只有消费者device服务,消费者device服务再通过服务路由及eureka服务去寻找我们需要的业务操作进行反馈即可,至于熔断器的加入是为了防止单一请求出现异常导致消费者服务资源被长期占用,redis的加入是为了解决频繁的多次查询相同的数据等类似情况,可以直接从缓存中提取数据,降低服务器压力。

算法配置:

 springcloud默认算法配置为轮询策略,如果我们想切换成其他负载算法可以在配置文件中相应的配置。

image.png

相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
5月前
|
负载均衡 监控 算法
实现负载均衡策略:优化系统性能与可用性
实现负载均衡策略:优化系统性能与可用性
|
5月前
|
Kubernetes 网络性能优化 调度
Koordinator v1.4 正式发布!为用户带来更多的计算负载类型和更灵活的资源管理机制
Koordinator v1.4 正式发布!为用户带来更多的计算负载类型和更灵活的资源管理机制
|
Web App开发 弹性计算 编解码
最佳实践:如何扩展你的SRS并发能力?
当我们用SRS快速搭建了视频服务,业务也开始上线运行了,很快就会遇到一个问题:如何支持更多的人观看?如何支持更多的人推流?这本质上就是系统的水平扩展能力,SRS当然是支持的,而且有多种扩展的方法,这篇文章就就详细分析各种扩展的方案,以及各种方案的应用场景和优缺点。
2502 0
最佳实践:如何扩展你的SRS并发能力?
|
3月前
|
搜索推荐 开发工具
通用快照方案问题之性能指标的优化如何解决
通用快照方案问题之性能指标的优化如何解决
42 0
|
3月前
|
Java
通用快照方案问题之调整Hystrix的信号量隔离模式的并发限制如何解决
通用快照方案问题之调整Hystrix的信号量隔离模式的并发限制如何解决
27 0
|
3月前
|
Prometheus 监控 数据可视化
通用快照方案问题之Hystrix进行指标监控如何解决
通用快照方案问题之Hystrix进行指标监控如何解决
40 0
|
数据采集 缓存 运维
jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包
jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包
jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包
|
数据采集 调度 数据库
如何实现通用爬虫并检测可用性?
我们的目标:根据配置文件信息, 加载爬虫,抓取HTTP代理,进行校验,如果可用,写入到数据库中
|
存储 Kubernetes 固态存储
k8s存储机制概述
k8s存储机制概述
363 0
|
缓存 运维 安全
『容错机制』 .NET 弹性和瞬态故障处理库Polly应用详解
所谓瞬态故障,就是说故障不是必然会发生的,而是偶然可能会发生的,比如网络偶尔会突然出现不稳定或无法访问这种故障。至于弹性,就是指应对故障 Polly 的处理策略具有多样性和灵活性,它的各种策略可以灵活地定义和组合。
470 1
『容错机制』 .NET 弹性和瞬态故障处理库Polly应用详解