具备一定C++或C#编程基础,希望系统学习ICE中间件以构建分布式系统的软件工程师、架构师。
完成培训后,学员将能够:
理解ICE的核心架构与设计哲学
熟练使用Slice语言定义跨平台接口
掌握ICE在C++和C#环境下的映射与开发
深入理解ICE的线程、连接、异常等底层模型
学会使用ICE Storm构建发布-订阅系统
能够根据项目需求进行技术选型与性能调优
分布式系统中间件的演变:从CORBA、DCOM到ICE
核心术语:通信器、对象与代理、对象适配器、端点
ICE体系架构:客户端、服务器端、Ice Registry的关系
模块、基本数据类型与复杂类型(结构体、序列、字典、枚举)
接口与操作、参数的传递方向
类与异常、常量的定义
编译时指令与元数据的使用
Slice到C++的映射:智能指针、代理类操作、Servant类实现
Slice到C#的映射:接口委托、类映射、值类型映射
内存管理对比:C++ RAII vs .NET GC
动手实验:编写计算器Slice文件,实现C++和C#的服务端与客户端
对象标识的构成与唯一性解析
Servant激活机制:默认Servant与Servant定位器
分布式对象的生命周期管理
客户端线程池与服务端线程池的分工
线程池配置参数:Size、SizeMax、SizeWarn、StackSize
动态线程池的伸缩策略与监控
Servant实现中的线程安全问题与ICE线程API
端点配置与协议选择(TCP/SSL)
连接的重连机制
超时控制详解:连接超时、空闲超时、关闭超时
连接池管理与双向连接应用场景
对象适配器的请求分派流程
异步客户端(AMI):回调方式、轮询方式、Future/Promise模式
异步服务端(AMD):避免服务端线程阻塞
单向调用与批量调用模式的应用场景
系统异常与用户异常的体系结构
常见异常处理:ConnectionLostException、ObjectNotExistException、TimeoutException、MarshalException
日志跟踪与调试技巧:开启网络跟踪、线程池跟踪
ICE Grid:服务定位、负载均衡、故障转移
ICE Storm:发布-订阅模型架构
Topic管理与持久订阅vs非持久订阅
动手实验:搭建简单的消息通知系统
配置文件格式与优先级规则
常用属性分类:网络属性、线程池属性、日志属性
通过代码动态配置属性
服务端部署:Windows Service/Linux Daemon
ICE vs gRPC核心对比:
通信协议:ICE二进制 vs gRPC HTTP/2
接口定义:Slice语言 vs Protocol Buffers
流式处理:gRPC的流式优势 vs ICE的双向连接
生态与社区:ICE商业化背景 vs gRPC的CNCF背书
适用场景分析与选型决策依据
项目实战:设计分布式文件处理系统
结合ICE Grid实现负载均衡
使用ICE Storm进行任务状态通知
代码Review与性能优化实践
问题答疑与经验分享