架构师面试(二十三):负载均衡

问题

今天我们聊微服务相关的话题。

大中型微服务系统中,【负载均衡】是一个非常核心的组件;在微服务系统的不同位置对【负载均衡】进行了实现,下面说法正确的有哪几项?

A. LVS 的负载均衡一般通过前置 F5 或是通过 VIP + keepalive 实现;

B. Nginx 的负载均衡一般通过前置 LVS 或是 VIP + keepalive 实现;

C. 服务的负载均衡一般通过上游服务的 RPC 连接池实现;

D. 存储的负载均衡一般上游服务的 存储 连接池实现。

解析

在集群模式的系统中,【负载均衡】是一个非常非常关键的核心组件,它按一定的比例将流量转发到集群中的节点上,使集群中的节点按照均衡的负载稳定运行;除了管理负载,【负载均衡】组件也可以实现 集群的 高可用、高并发和高扩展。

在微服务系统中,每一分层集群的负载均衡,通常是基于上一层的负载均衡组件实现的,比如:数据访问层集群的负载均衡一般通过业务逻辑层节点的 RPC 连接池实现、业务逻辑层集群的负载均衡一般通过网关层节点的 RPC 连接池实现、网关层集群的负载均衡一般通过反向代理实现; 这样层层向上,终有头,到头了怎么处理呢? 通常通过 VIP + keepalive 的方式实现。

总结:微服务系统中,负载均衡的实现,有两种常用方式,即 前置组件 和 VIP + keepalive。

需要注意,存储层部分比较复杂,大量的数据需要【分片 + 副本】,要保证存储集群节点的负载均衡性,既需要考虑写负载、也要考虑读负载,既需要考虑分片后的路由,也要考虑分片副本的可用性;所以对于存储系统的负载均衡往往由其内部组件负责,比如 TiDB、Codis、RocketMQ 等。 (所以 D 选项是错误的)

这一部分内容我们在【架构师】课程的【架构篇之整体架构分析】中讲过哈,听过的同学好好复习一下,没有听过的同学当做一次知识输入。

参考答案

ABC

相关推荐
nVisual20 小时前
数据中心机柜负载均衡与三相相位监控方案
运维·网络·负载均衡·数据中心布线·综合布线管理软件
chexus21 小时前
21. 深入 Nginx HTTP 缓存源码:CDN功能
nginx·http·缓存
BelongPanda2 天前
Linux Nginx 纯手动 Let‘s Encrypt 泛域名证书配置教程
linux·nginx
郝亚军2 天前
nginx的三个基础库:PCRE、OpenSSL、Zlib的安装
linux·服务器·nginx
CodexDave2 天前
MySQL事务隔离级别与MVCC机制解析
前端·数据库·mysql·nginx·性能优化·负载均衡
chexus3 天前
20. 深入 Nginx 信号处理
linux·c语言·网络·nginx
Thanks_ks3 天前
深入理解一致性 Hash 算法:从理论到虚拟节点的工程实践
负载均衡·缓存雪崩·go语言·一致性hash·分布式系统·数据倾斜·虚拟节点
名字还没想好☜4 天前
Nginx 反向代理与负载均衡配置实战
运维·nginx·负载均衡
砍材农夫4 天前
运维|devops|nginx|基本配置拆解
运维·nginx·devops
三8444 天前
笔记:在同一个物理服务器上通过nginx的虚拟主机生成多个不同的web站点
java·前端·nginx