《从0开始学架构》笔记:集群架构与高可用设计
需积分: 10 6 浏览量
更新于2024-09-08
收藏 44KB DOCX 举报
"李运华老师的《从0开始学架构》笔记,主要涵盖了架构设计模板,包括总体方案、架构总揽、架构关键设计点、核心流程、详细设计等,重点讨论了高可用设计,如消息发送可靠性、消息存储可靠性和消息读取可靠性。"
在架构设计中,整体方案是至关重要的,它定义了整个系统的结构和组成部分。在这个案例中,采用了数据分散的集群架构,集群中的服务器被分组,每组负责存储一部分消息数据。为了确保高可用性,每个分组包含一台主MySQL和一台备MySQL,主备之间进行数据复制,但分组间数据不同步。正常运行时,主服务器处理消息的写入和读取,而备服务器仅在主服务器故障时接管读取服务。
架构总揽进一步细化了架构图及描述,明确了各个模块或子系统的职责,比如这里的主服务器和备服务器的角色分配,以及客户端如何通过轮询策略进行消息的发送与接收。虽然消息发送和读取的具体流程没有在此处详述,但在实际设计中,这些流程应当详细描述,包括异常处理和错误恢复机制。
在详细设计阶段,高可用性是重点关注的方面。对于消息发送,系统内置的SDK支持轮询重试策略,当主服务器无法发送时,SDK会尝试其他主服务器,直到发送成功。如果所有主服务器都无法发送,SDK可以根据配置选择缓存消息或直接丢弃。然而,业务服务器的重启可能导致缓存消息丢失,对此SDK并不负责,业务方需自行处理关键消息的存储。
消息存储的可靠性依赖于MySQL的主备复制,确保消息的高可用存储。主备MySQL之间的复制延迟需要监控,一旦延迟超过30秒,应当触发告警并进行干预,以防止数据丢失。
消息读取的可靠性体现在主备服务器的切换机制上。利用Zookeeper进行状态监测和决策,主服务器故障时,备服务器自动接管读取服务。主备服务器的配置和角色通过Zookeeper进行管理和更新,保证了故障切换的无缝衔接。
这个架构设计模板展示了如何构建一个高可用、可扩展的消息处理系统,涵盖了从总体方案到详细设计的关键步骤,并突出了在消息发送、存储和读取过程中的可靠性设计。这样的架构能够有效地应对潜在的故障,保障系统的稳定运行。
2018-10-08 上传
2023-05-09 上传
2023-09-14 上传
2023-09-16 上传
2023-09-14 上传
2023-09-16 上传
2023-09-14 上传
2024-05-09 上传
JasonYao
- 粉丝: 70
- 资源: 22
最新资源
- StarModAPI: StarMade 模组开发的Java API工具包
- PHP疫情上报管理系统开发与数据库实现详解
- 中秋节特献:明月祝福Flash动画素材
- Java GUI界面RPi-kee_Pilot:RPi-kee专用控制工具
- 电脑端APK信息提取工具APK Messenger功能介绍
- 探索矩阵连乘算法在C++中的应用
- Airflow教程:入门到工作流程创建
- MIP在Matlab中实现黑白图像处理的开源解决方案
- 图像切割感知分组框架:Matlab中的PG-framework实现
- 计算机科学中的经典算法与应用场景解析
- MiniZinc 编译器:高效解决离散优化问题
- MATLAB工具用于测量静态接触角的开源代码解析
- Python网络服务器项目合作指南
- 使用Matlab实现基础水族馆鱼类跟踪的代码解析
- vagga:基于Rust的用户空间容器化开发工具
- PPAP: 多语言支持的PHP邮政地址解析器项目