《中间件技术》教学大纲
制定时间:2025年3月
一、课程基本信息
(一)适用专业:
本科软件工程专业
(二)课程代码:
3ZN1072A
(三)学分/课内学时:
2学分/32学时
(四)课程类别:
专业教育
(五)课程性质:
专业教育必修
(六)先修课程:
《数据结构与算法》、《操作系统原理与实现》、《C语言程序设计与应用》、《计算机科学导论》、《面向对象的程序设计方法》、《web前端技术专题实验》、等
(七)后续课程:
软件工程项目综合实训、毕业设计(论文)等
二、课程教学目标
《中间件技术》是软件工程专业的专业必修课程,旨在通过讲授中间件的基本原理与实践应用,培养学生在分布式系统、云计算及企业级软件开发中的技术能力与工程思维。课程内容涵盖中间件的核心概念、分类及典型技术,包括消息中间件(如RabbitMQ)、分布式服务框架(如Spring Cloud等)、缓存中间件(如Redis)以及系统监控与性能优化等,重点结合计算机系统结构与软件工程技术,帮助学生理解中间件在解决高并发、高可用性等复杂工程问题中的关键作用。其教学目标在于掌握中间件的配置与调优方法,更强调通过案例分析与项目实践,培养学生设计分布式系统架构、进行技术选型及解决实际业务场景问题的能力。作为学科导向性课程,它衔接了软件工程理论与产业需求,使学生能够适应云计算、微服务等前沿技术岗位,提升解决企业级系统开发中关键问题的综合竞争力,是软件工程专业培养面向产业需求的高素质工程人才的重要支撑。
(一)具体目标
本课程的主要任务是通过课堂教学、实验教学等环节培养学生中间件技术应用与开发的综合实践能力,完整的问题分析、问题解决能力。课程目标及能力要求具体如下。
目标1:
学生能够系统叙述中间件的核心原理与技术特性,能够针对企业级分布式系统需求,设计并实现基于消息通信、服务治理或缓存优化的解决方案,满足高并发、高可用场景的工程实践要求。
目标2:
学生能够运用主流中间件工具(如Spring Cloud、Redis、Kafka)进行配置、调试与性能调优,通过实验与案例分析解决系统延迟、一致性等典型工程问题,形成技术决策的逻辑推理能力。
目标3:
学生能够辩证评估不同中间件技术的适用性,结合行业趋势(如云原生、微服务)提出技术演进方案,具备持续学习能力跟踪技术迭代,初步形成适应产业需求的终身学习能力。
(二)课程目标与毕业要求的对应关系
毕业要求 |
毕业要求指标点 |
课程目标 |
教学单元 |
评价方式 |
2.问题分析:能够应用数学、自然科学和工程科学的基本原理,识别、表达、并通过文献研究分析复杂工程问题,以获得有效结论 |
2.2: 能运用相关科学原理和数学模型方法,对复杂工程问题进行正确表达和描述; 2.3:能运用数学、自然科学和工程科学与技术和计算机专业的基本原理,分析软件领域的复杂工程问题及其影响因素,并结合文献研究,确定合理的方案,获得有效结论。 |
目标1 目标2 |
第一章 中间件概述 第五章 中间件性能优化与监控 |
平时作业、实验 |
4.研究:能够基于科学原理并采用科学方法对复杂软件工程问题进行研究,包括建立软件模型、设计实验、分析与解释数据、并通过信息综合得到合理有效的结论。 |
4.1能够基于科学原理,通过文献研究或相关方法,调研和分析软件复杂工程问题的解决方案,能够对软件系统的对象特征和性能参数开展研究,设计合理可行的实验方案; 4.2能够构建实验系统,正确采集和整理实验数据; 4.3能对实验结果进行分析和解释,并通过信息综合得到合理有效的结论。 |
目标1 目标2 目标3 |
第三章 分布式服务框架 第四章 缓存与数据中间件 第五章 中间件性能优化与监控 第六章 中间件综合设计 实验2:分布式服务框架实践与容灾设计 |
平时作业、实验、非标大作业 |
5. 使用现代工具:能够针对软件领域复杂工程问题,开发、选择与使用恰当的技术、资源、现代工程工具和信息技术工具,包括对软件领域复杂工程问题的预测与模拟,并能够理解其局限性。 |
5.2能够针对软件领域的工程问题,选择恰当的计算机软硬件、通信网络等技术和工具进行分析; |
目标1 目标2 |
实验1:消息中间件配置与实时系统设计 实验3:缓存优化与性能监控 |
平时作业、实验、非标大作业 |
11. 终身学习。具有自主学习、终身学习和批判性思维的意识和能力,能够理解广泛的技术变革对工程和社会的影响,适应新技术变革。 |
11.1在职业生涯中具有自主学习和终身学习的意识; 11.2能针对个人或职业发展的需求,采用合适的方法,自主学习,适应社会和技术的发展。 |
目标3 |
第六章 中间件综合设计 实验2:分布式服务框架实践与容灾设计 |
平时作业、实验、非标大作业 |
三、教学内容与方法
(一)教学内容及要求
(填写说明:“教学内容”应简明扼要填写知识点,要能支撑课程目标的实现;“学习产出要求”应主要填写学生学习后达到的相关能力;“推荐学时”为相应课内学时;“推荐教学方式”为主要包括讲授、研讨、案例、实验等,每个单元可有一种或多种。
序号 |
教学 单元 |
教学内容 (知识点) |
学习产出要求 |
推荐学时 |
推荐 教学 方式 |
支撑 教学目标 |
备注 |
1 |
第一章 中间件概述 |
1. 中间件的定义、分类与技术演进;2. 中间件在企业级系统中的核心作用(如微服务、云原生场景);3. 行业案例分析(如电商系统、金融系统架构) |
学生能够系统阐述中间件的核心概念、分类及技术演进路径,并通过案例分析(如电商系统架构)说明中间件在解决分布式系统复杂问题中的作用 |
2 |
讲授 演示 案例 |
目标1 |
|
2 |
第二章 消息中间件 |
1. 消息通信模型与协议; 2. RabbitMQ的架构设计与核心功能;3. 实时消息系统设计原则(如可靠性、顺序性) |
学生能够对比分析消息协议的适用场景,设计基于RabbitMQ的实时消息系统架构,并解释其保障消息可靠性的核心机制(如持久化、分区策略) |
3 |
讲授 演示 案例 |
目标1、2 |
|
3 |
第三章 分布式服务框架 |
1. 服务治理与负载均衡算法;2. Spring Cloud的组件原理(如服务注册、配置中心);3. 微服务架构设计模式(如API网关、熔断机制) |
能够叙述软件测试过程由哪些环节组成,能指出各测试环节应用何种测试技术,能够开展简单的单元测试和集成测试。 |
4 |
讲授 案例 演示 归纳 |
目标1、2 |
|
4 |
第四章 缓存与数据中间件 |
1. 缓存一致性策略(如最终一致性、强一致性);2. Redis集群架构与持久化机制;3. 数据库中间件(如Sharding-JDBC)的分库分表原理 |
学生能够配置Redis集群模式并实现主从复制,分析其对系统读写性能的优化效果,同时解释分库分表策略在数据库中间件(如Sharding-JDBC)中的实现逻辑 |
3 |
讲授 案例 演示 归纳 |
目标1、2 |
|
5 |
第五章 中间件性能优化与监控 |
1. 性能指标分析(如吞吐量、延迟);2. 监控工具的原理与应用;3. 故障排查与容灾设计(如熔断、降级) |
学生能够使用构建系统监控看板,通过时延、吞吐量等指标定位性能瓶颈,并提出熔断、降级等容灾策略 |
3 |
讲授 案例 演示 归纳 |
目标2、3 |
|
6 |
第六章 中间件综合设计 |
1. 分布式系统架构设计流程;2. 技术选型决策方法(如成本、扩展性);3. 企业级系统案例解析 |
学生能够针对具体业务场景,设计包含消息队列、服务治理、缓存协同的分布式系统架构,说明技术选型对业务连续性、成本可控性的支撑作用 |
5 |
讲授 案例 演示 归纳 |
目标1、3 |
|
7 |
实验1:消息中间件配置与实时系统设计 |
配置RabbitMQ集群,实现订单通知系统的生产者-消费者模式; 设计消息持久化与优先级队列策略,确保高并发场景下的消息可靠性; 通过压力测试分析不同消息协议(如AMQP)对延迟的影响 |
提交消息队列方案设计文档,包含架构图、配置参数及可靠性保障措施;学生具备基本的消息中间件应用能力 |
4 |
演示 实验 |
目标1 |
|
8 |
实验2:分布式服务框架实践与容灾设计 |
使用Spring Cloud实现微服务架构,包含服务注册、负载均衡与熔断;模拟网络故障场景,设计服务降级策略并验证系统可用性;撰写技术选型分析报告 |
提交服务治理策略文档,包含故障模拟数据、熔断规则及技术选型依据; 学生获得一定的基础批判性思维与工程决策意识 |
4 |
演示 实验 |
目标2 |
|
9 |
实验3:缓存优化与性能监控 |
部署Redis集群,配置主从复制与持久化策略;对比缓存键值操作与数据库查询的性能差异,优化案例系统的缓存穿透问题;使用Prometheus+Grafana构建监控看板,分析缓存命中率对系统吞吐量的影响 |
提交缓存优化方案与性能报告,包含集群配置截图、压力测试数据及监控截图;学生能够对中间件进行调优与性能分析 |
4 |
演示 实验 |
目标3 |
|
总计 |
|
32 |
|
|
|
(二)教学方法
本课程以“产出”为核心,通过案例、项目、工具链等载体,确保学生达成“设计解决方案”“技术调优”“技术评估”三大目标。最终,课程通过“教学方法-学习产出-成果评估”的闭环设计,实现“以学生为中心”的教育理念。
(1)主要采用案例式教学。课程以企业级案例为切入点,通过“事→理→德→人”的教学路径,引导学生从实际问题出发理解中间件技术原理。例如,可以“双十一秒杀系统”为案例,分析消息队列如何解决高并发问题,同时融入数据安全与社会责任的思政教育。教师可通过案例拆解中间件的核心功能(如分布式事务、缓存一致性),学生在案例分析中掌握技术选型与架构设计方法。通过案例可激发学生学习的兴趣,培养学生系统思考、分析问题和解决问题的能力,引导学生主动通过应用实践加深对知识的理解以及应用能力,强化工程师对社会安全的责任意识。
(2)问题导引教学。针对知识点,提出该知识需要解决的问题,通过问题导引,发现问题,分析问题,解决问题,一步步启发学生依据科学的、规范的理论基础对问题进行思考并解决。在实验阶段,可以采用“问题(需求)与任务驱动+小组协作”的模式,将课程的实验项目贯穿为一综合项目,要求学生分阶段完成消息中间件配置、服务治理实现、缓存优化等任务。通过综合实验项目,学生需提交架构设计文档、代码实现及性能测试报告,培养学生的技术评估能力和方案设计能力,培养团队协作与工程化思维。
(3)多媒体教学资源的灵活应用,提高课堂教学信息量,增强教学的直观性与生动性。
(4) 理论教学与工程实践相结合,引导学生综合应用所学的专业知识,采用科学的方法和手段,进行项目设计与实现。在实验阶段,依托Docker、Kubernetes等工具构建虚拟化实验环境,学生在实验课中完成中间件部署、调优与监控(如Prometheus性能分析)。通过“配置-测试-优化”循环,学生掌握工具链操作能力。可结合“多元化考核”,通过实验报告与代码评审评估技术落地能力。
(5)启发式教学。设定教学思路,引导学生在指定的讨论范围内,以科学、有效的思路寻找问题的求解过程,并能选择合理的技术灵活的应用在问题求解过程中。教师采用“引导-质疑-反思”策略,鼓励学生对比不同方案的优劣(如Kafka与RabbitMQ的适用场景),强化批判性思维。在技术教学中嵌入价值观培养,如通过“系统可靠性设计”案例强调工程师的社会责任(避免因中间件故障导致的数据泄露),强调持续学习及终身学习的理念。
四、考核及成绩评定
(一)考核内容及成绩构成
课程考核以考核学生能力培养目标的达成为主要目的,以检查学生对各知识点的掌握程度和应用能力为重要内容,包括平时作业、实验及期末测试三个部分,考核方式:考查。各课程目标的考核内容、成绩评定方式、目标分值建议如下:
课程目标 |
考核内容 |
成绩评定方式 |
成绩占总评分比例 |
目标成绩占当次考核比例 |
学生当次考核平均得分 |
目标达成情况计算公式 |
目标1:学生能够系统叙述中间件的核心原理与技术特性,能够针对企业级分布式系统需求,设计并实现基于消息通信、服务治理或缓存优化的解决方案,满足高并发、高可用场景的工程实践要求。 |
微服务架构中中间件的作用,基于消息通信的高并发系统架构设计,中间件选型及优化 |
作业 |
10% |
100% |
A1 |
|
实验 |
6% |
20% |
B1 |
目标2:学生能够运用主流中间件工具(如Spring Cloud、Redis、Kafka)进行配置、调试与性能调优,通过实验与案例分析解决系统延迟、一致性等典型工程问题,形成技术决策的逻辑推理能力。 |
RabbitMQ集群配置与压力测试、Spring Cloud的使用、Redis集群性能分析与监控 |
实验 |
18% |
60% |
B2 |
|
大作业 |
30% |
50% |
C2 |
目标3:学生能够辩证评估不同中间件技术的适用性,结合行业趋势(如云原生、微服务)提出技术演进方案,具备持续学习能力跟踪技术迭代,初步形成适应产业需求的终身学习能力。 |
中间件演进趋势、服务治理能力的对比分析、技术跟踪能力 |
实验 |
6% |
20% |
B3 |
|
大作业 |
30% |
50% |
C3 |
总评成绩(100%)=作业(10%)+实验(30%)+大作业(60%) |
100% |
—— |
—— |
|
(二)平时考核成绩评定
实验:必做实验3次,其中每次实验建议4个学时。支撑目标1、目标2、目标3,共占总评分30%,目标1占6%、目标2占18%、目标3占6%。对应目标的评分标准建议如下:
实验1:消息中间件配置与实时系统设计(支撑目标1,占总评分6%)
对应目标 |
目标1 |
考查点 |
实验过程(50%)、实验结果(50%) |
成绩比例 |
总6%(过程3%、结果3%) |
评分标准 |
|
等级 |
|
优秀(90-100) |
实验步骤完整,架构设计逻辑清晰,方案文档包含完整技术选型依据;能主动优化消息可靠性机制(如持久化策略)。 |
良好(80-89) |
实验步骤较完整,架构设计逻辑基本合理,方案文档包含主要技术选型依据;能实现基础消息可靠性保障。 |
中等(70-79) |
实验步骤部分完整,架构设计逻辑存在疏漏,方案文档内容不完整;消息可靠性机制实现不完善。 |
合格(60-69) |
实验步骤不完整,架构设计逻辑混乱,方案文档缺乏技术选型依据;无法实现消息可靠性保障。 |
不及格(<60) |
无法完成实验步骤,架构设计逻辑错误,方案文档无效;完全依赖模板,无自主设计。 |
实验2:分布式服务框架实践与容灾设计(支撑目标2,占总评分18%)
对应目标 |
目标2 |
考查点 |
实验过程(50%)、实验结果(50%) |
成绩比例 |
总18%(过程9%、结果9%) |
评分标准 |
|
等级 |
实验过程 |
优秀(90-100) |
熟练配置Spring Cloud组件(如服务注册、熔断),故障模拟覆盖多种场景;技术选型报告分析深入,对比Dubbo与Spring Cloud的优劣。 |
良好(80-89) |
熟练配置核心组件,故障模拟覆盖主要场景;技术选型报告分析合理,但对比维度有限。 |
中等(70-79) |
配置存在错误,故障模拟覆盖不足;技术选型报告内容不完整,缺乏对比分析。 |
合格(60-69) |
配置步骤依赖模板,故障模拟未实现;技术选型报告无效。 |
不及格(<60) |
无法完成配置,未进行故障模拟;技术选型报告未提交或内容错误。 |
实验3:缓存优化与性能监控(支撑目标3,占总评分6%)
对应目标 |
目标3 |
考查点 |
实验过程(50%)、实验结果(50%) |
成绩比例 |
总6%(过程3%、结果3%) |
评分标准 |
|
等级 |
实验过程 |
优秀(90-100) |
缓存穿透问题优化方案创新,监控看板设计包含多维度指标(如QPS、命中率);能结合云原生趋势提出Redis与Memcached的替代方案。 |
良好(80-89) |
优化方案合理,监控看板包含基础指标;能对比Redis与其他缓存技术的适用场景。 |
中等(70-79) |
优化方案简单,监控看板设计不完整;技术对比分析片面。 |
合格(60-69) |
优化方案无效,未使用监控工具;未提交技术对比分析。 |
不及格(<60) |
未完成缓存配置,未分析性能问题;报告未提交或内容错误。 |
五、参考学习资料
(一)推荐教材:《中间件技术基础与Java实践》,付弘宇,清华大学出版社,2024, ISBN:9787302653189。
(二)参考资料:《分布式中间件核心原理与RocketMQ最佳实践》,刘猛,北京大学出版社,2023, ISBN:9787301335048
(三)参考资料:《分布式消息中间件实践》,倪炜,电子工业出版社,2018, ISBN:9787121349058