3. 集群高可用基础设计
Teamcenter 是典型的多层企业应用:客户端(Rich Client、Active Workspace 浏览器、NX 集成)先访问 Web 层(TcWeb 或 AWC 的 Web 服务器/应用服务器),再由 Web 层调用企业层(TcServer,即 FSC/池管理器/服务器管理器),企业层最终访问数据库(Oracle/SQL Server)与卷(Volume)。集群高可用设计的目标,是让上述每一层都不存在单点,并且当某个节点失效时,客户端能在可接受的时间内恢复服务。本节围绕负载均衡策略、会话保持、故障转移机制以及 VIP/DNS 方案四个要点,说明它们在 Teamcenter 场景中的落地方式。
一、负载均衡策略:按层选择,而非一刀切
Teamcenter 的不同层对负载均衡的要求差异很大,不能统一使用同一种算法。
Web 层(HTTP/HTTPS)通常使用七层负载均衡(如 F5、Nginx、HAProxy 或云负载均衡)。常用算法包括轮询(Round Robin)、加权轮询、最少连接(Least Connections)。由于 AWC 的会话状态较重,一般推荐最少连接或加权最少连接,避免把新请求持续压到已经繁忙的节点。若各 Web 节点硬件配置不同,用权重体现差异,例如 8C16G 节点权重 2、4C8G 节点权重 1。
企业层(TcServer)的负载均衡由 Teamcenter 自身的服务器管理器(Server Manager)与池管理器(Pool Manager)完成,而不是靠外部负载均衡器。客户端通过 FSC(File Server Cache)或直接连接企业层时,服务器管理器根据节点负载、可用性和配置的池策略分配服务器进程。因此企业层的高可用重点是:多个 TcServer 节点注册到同一服务器管理器,并保证数据库与卷对它们一致可见。
数据库层通常采用 RAC(Oracle)或 AlwaysOn(SQL Server)等数据库原生高可用方案,Teamcenter 通过 TNS 或连接字符串访问,不在此层做应用级负载均衡。
二、会话保持:AWC 与 Rich Client 的差异
会话保持(Session Persistence / Sticky Session)决定同一客户端的后续请求是否回到同一后端节点。Teamcenter 中需要区分两类客户端:
- Active Workspace(浏览器):基于 HTTP 会话,若 Web 层使用无状态设计(会话数据外置到共享缓存或数据库),可以不做会话保持;若会话保存在本地内存,则必须开启源 IP 或 Cookie 保持,否则用户会在节点间跳转时被要求重新登录或丢失上下文。
- Rich Client / NX 集成:通过 FSC 与企业层建立长连接,连接一旦建立就绑定到某个 TcServer 进程,天然具有“会话粘性”。此时负载均衡的关注点不是 HTTP 层,而是 FSC 到服务器管理器的连接分配是否均衡。
落地建议:优先把 AWC 会话外置,实现 Web 层无状态,这样故障转移时用户只需重新认证,不会丢失会话数据;若暂时无法外置,则配置基于 Cookie 的会话保持,并设置合理的超时时间(例如 30 分钟),避免长时间占用节点。
三、故障转移机制:健康检查与切换粒度
故障转移的核心是“多快发现、多快切换、切换后是否可用”。Teamcenter 集群中通常组合使用以下机制:
- 负载均衡器健康检查:对 Web 层使用 HTTP 探针(如
/awc/health或登录页返回码),间隔 5 秒、连续 2 次失败即摘除节点。 - Teamcenter 服务器管理器心跳:TcServer 节点定期向服务器管理器上报状态,心跳超时后该节点上的服务器进程被标记为不可用,新请求不再分配。
- 数据库与卷的故障转移:由数据库集群和共享存储/复制方案负责,Teamcenter 侧主要保证连接串和卷路径在切换后仍然有效。
需要特别注意的是切换粒度:Web 层节点故障只影响该节点上的 HTTP 会话;TcServer 进程故障会影响正在使用该进程的 Rich Client 会话,客户端通常会收到连接中断并尝试重连。因此企业层节点数量、每节点进程数和池配置,直接决定了单点故障的影响范围。
四、VIP 与 DNS 方案:入口高可用的两种选择
客户端需要一个稳定的入口地址,常见方案有两种:
VIP(虚拟 IP)方案:由负载均衡器或操作系统层(如 Keepalived + VRRP)提供一个虚拟 IP,客户端直接访问 VIP。优点是切换快(秒级)、对客户端透明;缺点是 VIP 通常绑定在同一子网,跨机房/跨地域能力弱。Teamcenter 中,VIP 一般用于 Web 层入口,例如 tc.example.com 解析到 10.20.30.100,由负载均衡器持有该 VIP 并转发到后端 Web 节点。
DNS 方案:通过 DNS 轮询或 GSLB 返回多个 IP,客户端自行选择。优点是跨地域、易扩展;缺点是受 DNS 缓存影响,故障切换可能长达数分钟,且客户端可能缓存了已失效的 IP。因此 DNS 更适合做地域级入口,而机房内仍建议使用 VIP 或负载均衡器做精细转发。
实际落地中常采用组合方案:DNS/GSLB 指向各机房的 VIP,VIP 由本地负载均衡器持有,负载均衡器再分发到 Web 节点。这样既获得跨机房容灾能力,又保证机房内切换速度。
五、落地要点与检查清单
结合上述分析,Teamcenter 集群高可用设计可参考以下检查项:
| 检查项 | 建议值 / 做法 | 判断依据 |
|---|---|---|
| Web 层负载算法 | 最少连接或加权最少连接 | 节点 CPU/连接数不出现持续倾斜 |
| 会话保持 | 优先无状态;否则 Cookie 保持,超时 30 分钟 | 节点切换后用户无需重复登录或丢失上下文 |
| 健康检查 | HTTP 探针 5 秒间隔,2 次失败摘除 | 故障节点在 10~15 秒内不再收到新请求 |
| 企业层心跳 | TcServer 定期上报,超时标记不可用 | 服务器管理器不再向故障节点分配进程 |
| VIP / DNS | DNS 指向 VIP,VIP 由负载均衡器持有 | 客户端入口地址稳定,机房内切换秒级完成 |
| 数据库与卷 | RAC / AlwaysOn + 共享或复制卷 | 切换后 TcServer 连接串与卷路径仍有效 |
总结来说,Teamcenter 集群高可用不是单一负载均衡器能解决的问题,而是 Web 层、企业层、数据库与卷、入口 VIP/DNS 四部分协同的结果。负载均衡策略决定流量如何分配,会话保持决定用户体验是否连续,故障转移机制决定中断时间长短,VIP 与 DNS 决定客户端能否稳定找到入口。四者配合得当,才能让集群在单点故障时仍然对外提供可接受的服务。