负载机制概述

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
简介: 随着信息科技的不断发展,人们对互联网科技的认知不断更新、依赖性随之增强,互联网平台的实效性、稳定性也越发重要,本文将从通过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)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
相关文章
|
4月前
|
Kubernetes 网络性能优化 调度
Koordinator v1.4 正式发布!为用户带来更多的计算负载类型和更灵活的资源管理机制
Koordinator v1.4 正式发布!为用户带来更多的计算负载类型和更灵活的资源管理机制
|
30天前
|
运维 监控 安全
如何保证网络的高效运行
【8月更文挑战第21天】如何保证网络的高效运行
28 15
|
1月前
|
Kubernetes 网络协议 安全
在k8S中,网络策略原理是什么?
在k8S中,网络策略原理是什么?
|
2月前
|
搜索推荐 开发工具
通用快照方案问题之性能指标的优化如何解决
通用快照方案问题之性能指标的优化如何解决
35 0
|
2月前
|
Prometheus 监控 数据可视化
通用快照方案问题之Hystrix进行指标监控如何解决
通用快照方案问题之Hystrix进行指标监控如何解决
36 0
|
2月前
|
Java
通用快照方案问题之调整Hystrix的信号量隔离模式的并发限制如何解决
通用快照方案问题之调整Hystrix的信号量隔离模式的并发限制如何解决
17 0
|
2月前
|
存储 NoSQL Java
通用快照方案问题之通过Sleuth进行耗时分析和链路优化如何解决
通用快照方案问题之通过Sleuth进行耗时分析和链路优化如何解决
32 0
|
4月前
|
消息中间件 存储 缓存
Kafka【基础知识 02】集群+副本机制+数据请求+物理存储+数据存储设计(图片来源于网络)
【2月更文挑战第20天】Kafka【基础知识 02】集群+副本机制+数据请求+物理存储+数据存储设计(图片来源于网络)
103 1
|
10月前
|
存储 缓存 Linux
高效利用CPU缓存一致性:优化技巧与策略分析
高效利用CPU缓存一致性:优化技巧与策略分析
|
数据采集 缓存 运维
jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包
jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包
jpOwl一款高性能的后端业务监控,动态配置策略规则的工具包