香港分布式系统课程内容与实验安排
分布式系统(Distributed Systems)是云计算、大数据、区块链时代的底层基础设施。无论你想做云原生工程师、分布式数据库内核研发,还是去 Web3 公司做共识协议工程师,这门课都几乎是必修。在香港,HKUST、CUHK、HKU、CityU 四所高校的研究生项目都把它列为计算机方向的核心选修或必修课,课程内容既覆盖经典理论(时间、时钟、一致性、共识),也强调动手实验(从 Raft 共识算法到 K8s 部署)。本文以课程大纲与公开实验要求为参考,把四校的内容与实验安排横向摊开,帮你看清差异与侧重。
所有具体课时、均分、学分以学校官网为准,本文整理的是择课时应当关注的”结构性问题”。
一、四校共同的知识底座
无论选哪所学校,分布式系统课程都会覆盖以下五大主题:
| 模块 | 核心内容 | 经典教材/论文 |
|---|---|---|
| 模型与时钟 | 分布式系统模型、同步/异步、失败模型、逻辑时钟(Lamport)、向量时钟 | Lamport 1978 |
| 一致性与共识 | 强一致性、顺序一致性、因果一致性、Paxos、Raft、ZAB | Lamport Paxos, Ongaro Raft |
| 容错与复制 | 主备复制、多主复制、Quorum、故障检测、脑裂 | Gilbert-Lynch 布鲁尔定理 |
| 分布式存储 | 分片(Sharding)、副本、LSM-Tree、B-Tree、CAP 权衡 | Dynamo 论文, BigTable, Spanner |
| 协调与共识服务 | Chubby、ZooKeeper、etcd、共识即基础设施 | Burrows Chubby, etcd raft paper |
把这五块读懂,就拿到了分布式系统面试的入场券。
二、四校课程侧重点对比
1. HKUST(香港科技大学)
课程代表:MSc in Information Technology / MSc in Big Data Technology 的 COMP 5631 Distributed Systems,以及 PhD 级别的 COMP 6910G Advanced Topics in Distributed Systems。
| 维度 | 安排 |
|---|---|
| 课时结构 | 12 周 × 3 小时,每周一次课+一次实验 |
| 理论占比 | 约 55% |
| 实验占比 | 约 45% |
| 实验平台 | 课程内建 K8s 集群,使用 etcd/Consul 做服务发现 |
| 期末考核 | 开卷考试 + 实验报告 + 小组项目 |
| 编程语言 | Go、Rust 均可,但 Go 占主流 |
| 特色方向 | 与 HKUST 的网络与系统实验室深度联动,常请 Google/Meta 分布式工程师做客座讲座 |
亮点:HKUST 的实验最贴近工业界,从 Raft 实现到 Operator 开发都有,2024 年起新增了 eBPF 性能观测实验。
2. CUHK(香港中文大学)
课程代表:MPhil/PhD 的 CSCI 5150 Distributed Systems and Computing,MSc 的同名压缩课程。
| 维度 | 安排 |
|---|---|
| 课时结构 | 13 周,前 8 周理论,后 5 周专题研讨 |
| 理论占比 | 约 60% |
| 实验占比 | 约 40% |
| 实验平台 | 自建集群 + 公有云(AWS Educate 给学分) |
| 期末考核 | 论文复现报告 + 实验系统演示 |
| 编程语言 | Java(标配)、C++、Python |
| 特色方向 | 与 CUHK 的云计算与区块链实验室深度联动,常做区块链共识(PBFT、HotStuff)实验 |
亮点:CUHK 偏重理论严谨性,对 Paxos 变种、Paxos vs Raft 形式化证明有专门课时,对想读 PhD 的同学特别友好。
3. HKU(香港大学)
课程代表:MSc Computer Science 的 COMP7507 Distributed Systems,PhD 级的同名高阶课程。
| 维度 | 安排 |
|---|---|
| 课时结构 | 12 周,每周 2 小时理论 + 1 小时实验 |
| 理论占比 | 约 50% |
| 实验占比 | 约 50% |
| 实验平台 | 课程专用 OpenStack 私有云 |
| 期末考核 | 期末项目(自选题目)+ 实验作业 |
| 编程语言 | Go、Python 为主 |
| 特色方向 | 强调系统安全,CF 在 Raft 实验基础上引入拜占庭容错(PBFT)变种 |
亮点:HKU 最大的特色是”灵活”——实验作业可以自选题目,往届有学生用课程结题系统做了简易版分布式数据库或区块链节点。
4. CityU(香港城市大学)
课程代表:MSc Computer Science 的 CS5324 Distributed Systems。
| 维度 | 安排 |
|---|---|
| 课时结构 | 13 周,理论与实验穿插 |
| 理论占比 | 约 50% |
| 实验占比 | 约 50% |
| 实验平台 | Docker Compose + 公有云混合 |
| 期末考核 | 期末项目 + 平时作业 |
| 编程语言 | Java、Go 均可 |
| 特色方向 | 实验门槛较友好,适合转专业背景学生入门 |
亮点:CityU 的课程设计对零基础同学最友好,实验文档齐全,助教响应快,适合内地转专业或非 CS 本科申请者作为入门跳板。
三、典型实验安排(以 HKUST 为参考)
四校实验难度不同,但核心实验的设计思路类似。下面以 HKUST 为参考,列出从基础到进阶的 6 个典型实验:
| 实验 | 内容 | 工作量 | 难度 |
|---|---|---|---|
| Lab 1 | 多线程服务器 + RPC 框架(基于 gRPC 或自写) | 2 周 | ★★ |
| Lab 2 | Raft 共识算法实现(含 Leader Election 与 Log Replication) | 3 周 | ★★★★ |
| Lab 3 | 基于 Raft 的分布式 KV 存储(类似 etcd 的简化版) | 3 周 | ★★★★★ |
| Lab 4 | 分布式事务(2PC / 3PC / Percolator 简化) | 2 周 | ★★★★ |
| Lab 5 | Sharded KV(分片 + Rebalancing + 跨分片事务) | 3 周 | ★★★★★ |
| Lab 6 | 课程结题项目(自选题目,如 Operator / 区块链节点 / 简化版分布式 SQL) | 4 周 | 不定 |
完成 Lab 1–3 已经可以应付国内一线大厂(字节、阿里、腾讯、美团)分布式系统面试;完成 Lab 4–6 则具备了做分布式数据库内核研发的工程能力。
四、横向对比一览表
| 维度 | HKUST | CUHK | HKU | CityU |
|---|---|---|---|---|
| 理论深度 | 高 | 极高 | 高 | 中 |
| 实验工程量 | 高 | 中 | 高 | 中 |
| 编程语言友好度 | Go 为主 | Java 为主 | Go/Python | Java/Go 均可 |
| 对零基础友好 | 中 | 低 | 中 | 高 |
| 区块链/Web3 关联 | 中 | 高 | 中 | 低 |
| 云原生关联 | 极高 | 中 | 高 | 中 |
| 工业界讲座密度 | 高 | 中 | 中 | 中 |
| 适合读博 | 高 | 极高 | 高 | 中 |
| 适合就业 | 极高 | 高 | 高 | 高 |
五、择课建议:四种读者画像
画像 A:想直接进大厂做云原生/分布式存储 建议优先看 HKUST。实验工业级、Go 为主、紧贴 K8s/Operator 生态。
画像 B:未来想读 PhD、做系统/数据库研究 建议优先看 CUHK。理论严谨、Paxos/Raft 形式化证明完整、区块链研究资源丰富。
画像 C:想留港做 Web3/区块链工程师 CUHK 与 HKUST 都是首选,CUHK 偏 PBFT 类 HKUST 路线更工程化。
画像 D:本科非科班、零基础入门 CityU 与 HKU 更友好,作业可以自选,助教响应快。
港校 MSc 多为一年制,PhD 4–5 年起。如果只读 MSc,实验比重高的项目(HKUST、HKU)对你就业帮助最大;如果打算读 PhD,理论比重高的项目(CUHK)更值得投入。
六、面试高频追问
读完这门课,你大概率会在分布式系统面试里遇到这些问题:
- Raft 与 Paxos 的本质区别是什么?为什么工业界更多用 Raft?
- Spanner 的 TrueTime 是怎么解决全局时钟问题的?需要哪些硬件支持?
- 2PC 在网络分区下为什么会卡住?3PC 真的能解决吗?
- CAP 定理在工程中如何取舍?Dynamo 与 Spanner 各代表哪种取舍?
- 拜占庭容错与崩溃容错的核心差异是什么?什么场景必须用 PBFT 而不是 Raft?
把这几个问题答到 70 分以上,你已经具备分布式系统工程师的面试能力。
七、写在最后
香港四校的分布式系统课程各有侧重,但底层知识框架高度一致。HKUST 偏工程、CUHK 偏理论、HKU 偏灵活、CityU 偏友好——选择时不必迷信”哪所最好”,而应看你的本科背景、目标方向(就业 vs 读博)、编程语言偏好。
课程具体学分、考核方式、选课人数以各校官网最新公布为准,本文涉及的教学安排基于历年公开大纲整理。
如果你还想了解更多香港高校计算机方向的课程对比、申请策略、生活成本清单,欢迎浏览 hkguide.org 上更多的香港相关指南。
常见问答
香港四所高校的分布式系统课程,哪所最适合内地非科班背景的同学入门?
文章指出 CityU 与 HKU 对零基础同学更友好。CityU 的实验门槛较低、文档齐全、助教响应快,常被建议作为内地转专业或非 CS 本科申请者的入门跳板;HKU 的实验作业支持自选题目,往届有学生用结题系统做过简易版分布式数据库或区块链节点,灵活性较高。具体选课门槛以各校官网最新公布为准。
HKUST 和 CUHK 的分布式系统课程主要差别在哪里?
两校侧重点差异明显:HKUST 偏工程路线,实验占比约 45%,与课程内建 K8s 集群、etcd/Consul 服务发现深度结合,2024 年起新增 eBPF 性能观测实验,常请 Google/Meta 分布式工程师做客座讲座,编程语言以 Go 为主流;CUHK 偏理论路线,理论占比约 60%,对 Paxos 变种、Paxos vs Raft 的形式化证明有专门课时,并依托云计算与区块链实验室,常做 PBFT、HotStuff 等区块链共识实验。简而言之,想工程化训练选 HKUST,想读 PhD、做系统研究选 CUHK。
这四所高校的分布式系统课程一般用什么编程语言?
HKUST 以 Go 为主流,Rust 亦可;CUHK 以 Java 为标配,同时支持 C++ 与 Python;HKU 以 Go 和 Python 为主;CityU 的 Java 与 Go 均可接受。如果内地同学只熟悉其中一门语言,可以据此对照选择。
香港高校的分布式系统实验一般包含哪些内容?
四校实验难度不同,但核心设计思路类似。以 HKUST 为参考,典型实验包括:多线程服务器与 RPC 框架、Raft 共识算法实现(含 Leader Election 与 Log Replication)、基于 Raft 的分布式 KV 存储、分布式事务(2PC / 3PC / Percolator 简化)、Sharded KV(分片 + Rebalancing + 跨分片事务),以及课程结题项目(自选题目,如 Operator、区块链节点、简化版分布式 SQL 等)。完成前三个实验已可应付国内一线大厂分布式系统面试;完成更多实验则具备分布式数据库内核研发的工程能力。
读完这门课,去 Web3 公司做共识协议工程师是否够用?
文章将 CUHK 与 HKUST 并列为想留港做 Web3/区块链工程师的首选:CUHK 偏 PBFT 类共识,与区块链实验室联动紧密;HKUST 路线更工程化,与云原生生态结合更紧。课程内会涉及 Paxos、Raft、PBFT、HotStuff 等共识算法,以及拜占庭容错与崩溃容错的差异,但能否胜任具体岗位还取决于个人在课程之外的工程积累与项目经验。