掌握这几个秘籍,你的分布式系统绝对牛掰!!!

本文涉及的产品
传统型负载均衡 CLB,每月750个小时 15LCU
应用型负载均衡 ALB,每月750个小时 15LCU
网络型负载均衡 NLB,每月750个小时 15LCU
简介: 掌握这几个秘籍,你的分布式系统绝对牛掰!!!

前言

根据CAP理论,分布式环境系统需要尽量保证C 一致性 A 可用性 P 容错性。分布式系统,从本质上来讲,就是通过一些低廉的硬件来实现系统更好的吞吐、性能以及可用性。分布式系统,有一套通用的系统设计策略。大致上分为:

  • 心跳检测
  • 高可用保障
  • 容错处理
  • 重试机制
  • 负载均衡

心跳检测

在分布式系统环境中,对于能够检测众多节点的活性是很有必要的。只有当节点存活,才可以进行执行对应的业务任务。传统来说,解决该类问题,一般都是通过心跳检测手段。如同医生通过仪器探测病人心跳一样,去判定服务器众节点的存活。

image.png

客户端,在请求对应的服务节点前,需要经过心跳检测服务器,进行路由转发到对应的节点处理。

心跳检测服务器,检测众多分发或者路由节点的活性,如果存活正常,路由才会转发到该节点。

传统心跳检测,存在一定的局限性

  • 如果节点没有挂,但是ping超时,导致,判定死亡,就会造成很大的资源损失
  • 心跳检测如果出现问题,则也会造成很大的影响

总结来说,心跳检测收到心跳正常,是正常的,但是心跳检测收不到心跳,也不代表节点存在异常,判定死亡

优化心跳检测策略

  1. 周期检测心跳机制
  2. 累计失效检测机制

高可用设计

系统高可用性的常用设计模式包括三种:主备、互备、集群模式

  1. 主备模式
    主备模式,就是Active Standby,当主机宕机时,备机接管主机一切工作,待主机正常之后,会通过两种方式自动(热备)、手动(冷备),恢复主机的工作
    数据库高可用方案中,一般都是MS主从模式 Matser-Slave

2.image.png

3.互备模式
互备模式,指的是多台主机同时运行各自的服务工作且互相检测,同步。在数据库高可用部分,采用互备,主要是MM模式(Multi-Master)。多个master都具有read - write 能力,需根据时间戳或者版本,最终合并。分布式版本管理系统git就可以理解为MM模式

4.集群模式
集群模式,指的是,多个节点同时运行服务,可以通过类似心跳服务器这种分担服务请求。

容错性

容错性,指系统对于错误、异常的包容能力,为了更好地提供用户的舒适度或者说客户端的响应合理,做出来的一些系统的让步处理。

容错,并非容忍错误。以分布式环境下的,缓存举例说明:

一个查询业务,先通过缓存查询,如果缓存没有,再去数据库查询。如果没有查询得到,可能的原因包括以下几个方面:

  • 数据库连接未知异常
  • 数据库真的没有

那么,用户可以进行间隔一定时间发起重试,可以一定程度友好的,解决问题

另外,如果出现缓存失效的情况下,恶意攻击,调用查询接口,查询缓存中不存在的key,导致大量流量进入DB,导致DB崩溃。

为了解决这个问题,我们可以考虑,如果在高频、短周期内,当客户查询不存在的key时,我们可以对当前key进行赋值,直接返回。响应给系统用户,截断恶意操作。

负载均衡

分布式系统环境,通过负载均衡,达到资源的合理分配利用

image.png

负载均衡,分为硬件和软件。硬件常见的设备F5,软件的LVS 、Nginx等等

以nginx为例,常见的负载均衡策略如下

  • 轮询
  • 最少连接
  • IP地址Hash
  • 基于权重的负载均衡
  • 自定义实现负载均衡算法
    <end>
相关实践学习
SLB负载均衡实践
本场景通过使用阿里云负载均衡 SLB 以及对负载均衡 SLB 后端服务器 ECS 的权重进行修改,快速解决服务器响应速度慢的问题
负载均衡入门与产品使用指南
负载均衡(Server Load Balancer)是对多台云服务器进行流量分发的负载均衡服务,可以通过流量分发扩展应用系统对外的服务能力,通过消除单点故障提升应用系统的可用性。 本课程主要介绍负载均衡的相关技术以及阿里云负载均衡产品的使用方法。
目录
相关文章
|
5月前
|
Web App开发 存储 自然语言处理
中高级前端大厂面试秘籍,为你保驾护航金三银四,直通大厂(上)(一)
中高级前端大厂面试秘籍,为你保驾护航金三银四,直通大厂(上)(一)
108 1
|
设计模式 SpringCloudAlibaba 负载均衡
每天打卡,跟冰河肝这些项目,技术能力嗖嗖往上提升
前几天,就有不少小伙伴问我,冰河,你星球有哪些项目呢?我想肝你星球的项目,可以吗?今天,我就给大家简单聊聊我星球里有哪些系统性的项目吧。其实,每一个项目的价值都会远超门票。
142 0
每天打卡,跟冰河肝这些项目,技术能力嗖嗖往上提升
|
2月前
|
Java UED 开发者
揭开Java性能提升之谜:异步编程如何让你的应用响应速度飞升?
【8月更文挑战第30天】随着互联网技术的发展,系统性能和用户体验成为关注焦点,异步编程因其能提高应用响应速度和吞吐量而在Java领域广泛应用。本文将详细阐述Java异步编程的概念与优势,并通过实战示例展示其在实际项目中的应用,如使用`Future`、`Callable`及`CompletableFuture`等接口和类实现异步操作,帮助开发者更好地理解和运用这一技术,以提升程序性能和用户体验。
21 0
|
2月前
|
缓存 网络协议 算法
这些年背过的面试题——网络和操作系统基础篇
本文是技术人面试系列网络和操作系统基础篇,面试中关于网络和操作系统基础都需要了解哪些内容?一文带你详细了解,欢迎收藏!
|
2月前
|
中间件 API 数据库
揭秘!Tornado框架何以成为Web开发界的璀璨新星?非阻塞I/O背后的秘密,让性能飙升的秘密武器!
【8月更文挑战第31天】Tornado 是 Web 开发领域的一颗璀璨明星,以其非阻塞 I/O、高性能和轻量级特性吸引了众多开发者。作为 Python 的异步网络库,Tornado 提供了强大的 Web 应用支持,特别适用于实时服务、游戏后端和 API 开发。其学习曲线平缓,从简单的 Hello World 示例即可快速上手。Tornado 的非阻塞 I/O 模型使其能高效处理大量并发连接,而丰富的扩展库则增强了其灵活性和扩展性。无论是初学者还是资深开发者,都能在 Tornado 中找到理想的开发体验。
24 0
|
5月前
|
缓存 JavaScript 前端开发
中高级前端大厂面试秘籍,为你保驾护航金三银四,直通大厂(上)(二)
中高级前端大厂面试秘籍,为你保驾护航金三银四,直通大厂(上)(二)
|
消息中间件 缓存 Java
牛掰!阿里人用7部分讲明白百亿级高并发系统(全彩版小册开源)
高并发 提到“高并发”相信你们应该都不会感到陌生!此时你脑中应该会浮现好多有关高并发的:业务急剧增长、电商购物、电商秒杀、12306抢票、淘宝天猫各种活动等;都是需要用到高并发的,那么如何去设计一个高并发系统抵挡这些冲击呢? 其实这也是一道很常见的面试题,但是大多数应聘者都不知如何回答,从何答起。对于一个Java程序员来讲,,更关注的是不是系统架构层面的呢?从原本的定时秒杀,到现在各种活动的预热、拼团、定金膨胀、百亿补贴、跨店满减以及更复杂的组合优惠,让用户摸不到头脑,虽然这些都扰乱了用户购买的节奏,但是也一直保持着持续升温的状态。
|
消息中间件 存储 SQL
有趣!用太极拳讲分布式理论,真舒服!
有趣!用太极拳讲分布式理论,真舒服!
131 0
有趣!用太极拳讲分布式理论,真舒服!
|
安全 测试技术
深聊测开领域之:虫剂悖论
深聊测开领域之:虫剂悖论
121 0
|
自然语言处理 JavaScript 前端开发
看了涡流大佬的面试文章的总结(框架通识, 看代码说结果)
看了涡流大佬的面试文章的总结(框架通识, 看代码说结果)
下一篇
无影云桌面