SAP WebDispatcher 的高可用
SAP Web Dispatcher是SAP系统的HTTP/HTTPS入口点,负责将Web请求分发到后端应用服务器。在高可用架构中,Web Dispatcher本身也需要避免成为单点故障。
1. 方案概述
在阿里云上部署Web Dispatcher高可用有以下几种方案:
方案 | 复杂度 | 适用场景 | 优势 | 局限 |
方案A:嵌入式部署 | 低 | 小型系统 | 无需额外节点 | 依赖ASCS集群 |
方案B:独立Pacemaker集群 | 中 | 企业级部署 | 完全自主HA | 需要额外节点 |
方案C:阿里云SLB + 多实例 | 低 | 云原生方案 | 无单点故障、可弹性扩展 | 需配置健康检查 |
2. 方案A:嵌入式部署(Embedded in ASCS)
SAP支持将Web Dispatcher嵌入到ASCS实例中运行(参见SAP Note 3115889)。在此方案中,Web Dispatcher作为ASCS的一个子进程,随ASCS一起由Pacemaker管理。

优点:
无需额外基础设施
与ASCS共享集群管理,运维简单
Web Dispatcher随ASCS自动切换
缺点:
Web Dispatcher的负载可能影响ASCS性能
切换期间Web服务中断
不适合高并发Web访问场景
3. 方案B:独立Pacemaker集群
为Web Dispatcher构建独立的两节点Pacemaker集群,采用active/passive模式。

集群资源配置:
# Web Dispatcher VIP
primitive rsc_ip_WD ocf:aliyun:vpc-move-ip \
params address=<wd-vip> \
routing_table=<rt-id> \
endpoint=vpc-vpc.<region-id>.aliyuncs.com \
interface=eth0 \
op monitor interval=10s timeout=20s
# === Web Dispatcher SAPInstance 资源 ===
primitive rsc_sap_WD_W00 SAPInstance \
operations $id=rsc_sap_WD_W00-operations \
op monitor interval=11 timeout=60 on-fail=restart \
params InstanceName=<SID>_W00_<虚拟主机名> \
START_PROFILE="/sapmnt/<SID>/profile/<SID>_W00_<虚拟主机名>" \
AUTOMATIC_RECOVER=false \
MONITOR_SERVICES="sapwebdisp" \
meta resource-stickiness=5000 failure-timeout=60 \
migration-threshold=1 priority=10
# 资源组
group grp_WD rsc_ip_WD rsc_sap_WD_W00
# STONITH(与应用层类似配置fence_aliyun)
优点:
Web Dispatcher完全独立,不影响ASCS
自动故障切换
缺点:
需要额外的ECS实例(至少2台)
切换期间有短暂服务中断
4. 方案C:阿里云SLB + 多实例(推荐)
利用阿里云SLB(Server Load Balancer)实现Web Dispatcher的负载均衡和高可用。这是云原生环境下的推荐方案。

部署架构:
SLB配置:
创建SLB实例(内网或公网,根据访问需求选择)
配置HTTP/HTTPS监听,端口通常为443(HTTPS)或8443
配置后端服务器组,加入多台Web Dispatcher实例
配置健康检查:HTTP方式,检查路径
/sap/public/ping,期望返回码200
Web Dispatcher实例:
部署2-3个独立的Web Dispatcher实例
每个实例独立运行,无需集群软件
使用相同的配置(
icm/server_port、后端目标等)
会话保持:
SLB配置基于Cookie的会话保持
或在Web Dispatcher层配置
wdisp/sticky_sid参数
SLB健康检查配置建议:
参数 | 推荐值 |
检查协议 | HTTP |
检查路径 | /sap/public/ping |
正常状态码 | 200 |
检查间隔 | 5秒 |
不健康阈值 | 3次 |
健康阈值 | 2次 |
优点:
无单点故障,多实例同时服务
可根据负载弹性扩缩Web Dispatcher实例
无需Pacemaker集群,运维复杂度低
支持HTTPS卸载(SSL Offloading)
缺点:
需要额外的SLB费用
需要确保所有Web Dispatcher实例配置一致
5. 方案选择建议
场景 | 推荐方案 |
小型SAP系统,Web访问量低 | 方案A:嵌入式部署 |
传统企业部署,偏好标准集群方案 | 方案B:Pacemaker集群 |
云原生部署,Web访问量大 | 方案C:阿里云SLB + 多实例 |
混合场景(SAP Fiori + 传统GUI) | 方案C用于Fiori,方案A/B用于内部访问 |