2025-03-20 17:31:41来源:考而思在线阅读量:494
阿德莱德大学COMP SCI 3012分布式系统课程通常涉及构建客户机/服务器软件面临的挑战:部分系统故障、多个地址空间、缺少单一时钟、通信延迟、异构性、缺少可信操作系统、系统管理、绑定和命名。以及应对这些挑战的技术:RPC和中间件、命名和目录服务、分布式事务处理、“瘦”客户机、数据复制、加密安全、移动代码。课程内容同时涵盖Java RMI简介。同学如果有哪部分内容没掌握,可以随时让我们的辅导老师来讲解,我们可以在任何同学有需要的时候安排辅导课程。
COMP SCI 3012 是阿德莱德大学计算机科学系专为高年级本科生及硕士设计的分布式系统核心课程,聚焦于大规模分布式系统的设计挑战与解决方案。课程以 **"问题驱动 - 技术落地"为框架,通过剖析分布式环境下的 7 大核心困境(部分系统故障、时钟异构、通信延迟等),系统讲解 RPC、分布式事务、数据复制等 10 + 关键技术,并结合Java RMI** 实现从理论到代码的闭环实践。
模块 1:分布式系统的底层挑战
▶ 核心问题
时空异构性:多节点时钟偏差(如 Google Spanner 的 TrueTime API 设计)
部分失效特性:网络分区下的系统弹性(对比 AWS 与 Azure 的跨可用区方案)
通信不可靠性:TCP vs UDP 在分布式场景中的选择逻辑
▶ 典型技术
租约机制(Lease):NFSv4 文件锁的实现原理
心跳检测:Kubernetes 节点健康检查的超时参数设计
模块 2:远程过程调用(RPC)体系
▶ 核心考点
失败语义分类:
At-most-once:HTTP 幂等性设计(如 GitHub API 的 PUT 操作)
At-least-once:Kafka 消息消费的 ACK 机制
序列化协议:Protobuf vs JSON 在 gRPC 中的性能对比
▶ 实践项目
Java RMI 基础:实现简单的分布式计算器服务,理解 Stub/Skeleton 架构
模块 3:分布式一致性与共识算法
▶ 经典模型
顺序一致性 vs 因果一致性:Redis 复制策略的演进
Paxos 算法:
阶段一(Prepare)与阶段二(Accept)的消息交互
多 Paxos 在 Raft 中的简化实现
▶ 案例分析
Google Chubby:如何通过 Paxos 实现分布式锁服务
模块 4:分布式事务与故障恢复
▶ 两阶段提交(2PC)
协调者(Coordinator)角色:数据库 XA 协议的实现流程
超时处理:MySQL InnoDB 的事务回滚机制
三阶段提交(3PC):解决 2PC 的单点故障问题
模块 5:分布式文件系统与数据复制
▶ 典型系统
NFS vs Ceph:集中式 vs 分布式元数据管理
GFS 架构:主节点(Master)与 Chunk Server 的分工
Raft 协议:Etcd 的数据复制流程
▶ 一致性模型
弱一致性:Amazon S3 的最终一致性实现
能力维度具体表现
技术应用能选择合适的分布式技术解决特定问题(如用 Paxos 实现选举,用 Raft 实现数据复制)
系统设计完成从需求分析到架构设计的全流程(如设计一个支持 10 万 TPS 的分布式订单系统)
故障诊断定位分布式系统中的超时、脑裂等问题(基于 Wireshark 分析网络包)
团队协作通过 Git 协作完成微服务架构开发,使用 Jira 进行任务管理
1. 合作会议报告(10%)
形式:小组汇报(3-4 人)
内容:
分析经典论文(如《Paxos Made Simple》)
对比主流分布式系统(如 HDFS vs Ceph)的设计差异
2. 实践编程作业(80%)
作业名称核心目标技术栈
作业 1:RPC 基础实现基础的 Java RMI 服务Java, IntelliJ
作业 2:分布式锁基于 Redis 实现 Redlock 算法Redis, Python
作业 3:文件系统设计分布式文件元数据管理模块Go, etcd
作业 4:共识算法用 Raft 协议实现分布式键值存储(KV Store)Java, Netty
3. 期末项目(10%)
自选方向:
微服务架构(Spring Cloud)
区块链共识(Hyperledger Fabric)
边缘计算分布式调度
针对本课程的高实践性与算法复杂度,我们提供:
1. 知识盲区突破
Paxos/Raft 算法专项:通过动画演示 + 分步推导理解核心逻辑
Java RMI 调试技巧:解决序列化异常、端口冲突等常见问题
2. 编程作业辅导
代码审查:逐行分析内存泄漏、线程安全等问题
性能优化:分布式系统的 QPS 压测与瓶颈定位(使用 JMeter)
3. 实战项目加速
架构设计模板:提供分布式系统分层架构参考方案
大厂案例库:解析 Google Spanner、Apache Kafka 的工程实现
前置知识准备:扎实掌握 Java 多线程、网络编程(Socket)
工具链搭建:熟练使用 Wireshark 抓包、JProfiler 性能分析
论文阅读:精读《分布式系统原理与范型》《Designing Data-Intensive Applications》
课程彩蛋:阿德莱德大学分布式系统实验室与 AWS 合作,提供免费云资源用于课程项目部署,优秀作品可推荐至南澳州创新创业大赛!
当前文章链接:
凡来源标注“考而思在线”均为考而思在线原创文章,版权均属考而思在线所有,任何媒体、网站或个人不得转载,否则追究法律
热门内容
相关问答
定制课程
电话咨询
客服微信
在线客服