SAP WebDispatcher 的高可用

更新时间:
复制 MD 格式

SAP Web DispatcherSAP系统的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管理。

image

优点:

  • 无需额外基础设施

  • ASCS共享集群管理,运维简单

  • Web DispatcherASCS自动切换

缺点:

  • Web Dispatcher的负载可能影响ASCS性能

  • 切换期间Web服务中断

  • 不适合高并发Web访问场景

3. 方案B:独立Pacemaker集群

Web Dispatcher构建独立的两节点Pacemaker集群,采用active/passive模式。

image

集群资源配置:

# 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的负载均衡和高可用。这是云原生环境下的推荐方案。

image

部署架构:

  1. SLB配置:

    • 创建SLB实例(内网或公网,根据访问需求选择)

    • 配置HTTP/HTTPS监听,端口通常为443(HTTPS)或8443

    • 配置后端服务器组,加入多台Web Dispatcher实例

    • 配置健康检查:HTTP方式,检查路径/sap/public/ping,期望返回码200

  2. Web Dispatcher实例:

    • 部署2-3个独立的Web Dispatcher实例

    • 每个实例独立运行,无需集群软件

    • 使用相同的配置(icm/server_port、后端目标等)

  3. 会话保持:

    • 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用于内部访问