【SAP Web Dispatcher负载均衡】

一、 核心概念与角色定位

首先,我们必须清楚它们各自扮演的角色。

1. SAP Web Dispatcher
  • 定位: 一个入口网关/软件负载均衡器
  • 作用: 它是SAP系统架构的"守门人"和"交通警察"。所有从外部(互联网/企业内部网)发起的、基于HTTP(S)、HTTPS、SMTP等协议的请求,首先到达的就是Web Dispatcher。
  • 主要功能:
    • 负载均衡: 将收到的请求均匀地分发到后端一个或多个SAP应用服务器(ABAP或Java)上,避免单台服务器过载。
    • 安全防火墙: 作为SAP系统的第一道防线,它可以过滤恶意的URL请求,防止攻击直接到达核心的应用服务器。
    • SSL终止: 处理耗资源的HTTPS加密/解密工作。客户端与Web Dispatcher之间建立安全的HTTPS连接,而Web Dispatcher与后端SAP服务器之间可以使用普通的HTTP连接,从而减轻应用服务器的负担。
    • 静态内容缓存: 可以缓存一些静态资源(如图片、CSS、JS文件),直接响应客户端,减少对后端服务器的请求。
    • 虚拟主机: 通过一个公网IP地址和端口,为多个不同的SAP系统或服务提供访问入口。

简单比喻: Web Dispatcher就像公司的前台接待处总机。所有外部来电(请求)都先打到这里,然后由前台根据规则转接到相应的部门或人员(SAP应用服务器)。

2. SAP系统/应用服务器
  • 定位: 业务逻辑处理器
  • 作用: 这是SAP系统的核心,运行着实际的业务应用程序,如ERP、CRM、SCM等。它包含了诸如工作进程、消息服务器、网关等核心组件。
  • 主要功能:
    • 处理业务请求: 执行ABAP或Java代码,处理用户的登录、业务单据创建、报表查询等所有业务操作。
    • 数据库交互: 直接与底层数据库(如HANA、Oracle、SQL Server)进行通信,读写业务数据。
    • 会话管理: 管理用户会话状态。

简单比喻: SAP应用服务器就像公司内部的各个专业部门(如销售部、财务部),他们负责处理前台转接过来的具体业务。


二、 两者之间的关系

Web Dispatcher和SAP应用服务器之间的关系是典型的 "代理-后端""入口-处理器" 关系。

  1. 协作关系: 它们共同协作,为最终用户提供一个完整、高效、安全的SAP访问体验。Web Dispatcher负责网络层面的接入和调度,SAP应用服务器负责业务层面的计算和处理。
  2. 依赖关系: Web Dispatcher依赖于后端的SAP应用服务器。如果没有可用的后端服务器,Web Dispatcher就无法处理任何有意义的业务请求,它自己无法执行业务逻辑。
  3. 层级关系: 在系统架构上,它们形成一个清晰的层级:
    • 客户端 (Browser, SAP GUI for HTML) -> Web Dispatcher -> SAP 应用服务器 -> 数据库

三、 如何关联 - 配置与连接机制

这是最关键的部分,即如何将Web Dispatcher和SAP应用服务器"链接"起来。这个过程主要通过配置文件来完成。

核心配置文件:webdispatcher.pxx

在Web Dispatcher的安装目录下,存在一个名为 webdispatcher.pxx (xx是实例号,如00, 01) 的配置文件。所有的关联配置都在这个文件中定义。

关键配置参数与步骤:
  1. 定义后端SAP服务器(路由目标)

    使用 wdisp/system_<ID> 参数来告诉Web Dispatcher后端有哪些SAP系统。

    ini 复制代码
    # 定义一个名为"SP1"的后端SAP系统
    wdisp/system_SP1 = SID=PRD, MSHOST=sapms.PRD.com, MSPORT=3600, SRCSRV=:443
    • SID: 后端SAP系统的系统ID(如PRD)。
    • MSHOST: 后端SAP系统的消息服务器 的主机名或IP地址。这是实现负载均衡的关键,因为Web Dispatcher需要向消息服务器查询当前有哪些活跃的应用服务器。
    • MSPORT: 消息服务器的端口号。
    • SRCSRV: Web Dispatcher监听客户端请求的地址和端口(例如:443表示监听所有IP的443端口)。
  2. 配置负载均衡组

    一个SAP系统通常有多个应用服务器实例。你需要将它们分组。

    ini 复制代码
    # 将服务器添加到负载均衡组
    wdisp/server_SP1_0 = HOST=sapapp01.PRD.com, PORT=8100, PROT=soap, PRIO=1
    wdisp/server_SP1_1 = HOST=sapapp02.PRD.com, PORT=8100, PROT=soap, PRIO=1
    wdisp/server_SP1_2 = HOST=sapapp03.PRD.com, PORT=8100, PROT=soap, PRIO=5
    • HOST/PORT: 后端SAP应用服务器的ICM(Internet Communication Manager) 服务的主机名和端口。
    • PROT: 使用的协议(如soap, https等)。
    • PRIO: 优先级。数字越大,优先级越低。这里sapapp03只会被用于负载非常高或前两台服务器不可用时。
  3. 配置路由规则(URL过滤)

    告诉Web Dispatcher,哪些URL请求应该被转发到哪个后端系统。这是通过过滤规则实现的。

    ini 复制代码
    # 将所有以 /sap/bc/gui/sap/its/webgui 开头的请求(典型的SAP Fiori/Web GUI请求)路由到SP1系统
    wdisp/filter_rule_0 = PREFIX=/sap/bc/gui/sap/its/webgui, SYSTEM=SP1
    
    # 将所有以 /sap/opu/odata 开头的请求(OData服务)路由到SP1系统
    wdisp/filter_rule_1 = PREFIX=/sap/opu/odata, SYSTEM=SP1
    
    # 可以将特定路径的请求路由到另一个系统,比如一个JAVA系统
    wdisp/filter_rule_2 = PREFIX=/java/, SYSTEM=JAVA01
  4. 启动与健康检查

    • 配置完成后,启动Web Dispatcher服务。
    • Web Dispatcher会主动连接到后端SAP系统的消息服务器,并定期检查所有配置的应用服务器实例是否可用(健康检查)。如果某个实例宕机,Web Dispatcher会自动将后续请求路由到其他健康的实例上。
连接流程示意图:

总结

  • Web Dispatcher 是SAP面向HTTP世界的统一入口流量管理器
  • SAP应用服务器业务处理的核心
  • 它们的关联 是通过在Web Dispatcher的配置文件中定义后端系统的消息服务器、应用服务器列表以及URL路由规则来实现的。
  • 这种架构提供了可扩展性 (轻松添加更多应用服务器)、高可用性 (自动故障转移)和增强的安全性
相关推荐
~无忧花开~3 小时前
JavaScript实现PDF本地预览技巧
开发语言·前端·javascript
Zhao·o3 小时前
KafkaMQ采集指标日志
运维·中间件·kafka
小时前端3 小时前
“能说说事件循环吗?”—— 我从候选人回答中看到的浏览器与Node.js核心差异
前端·面试·浏览器
P***25393 小时前
MCP负载均衡
运维·负载均衡
IT_陈寒3 小时前
Vite 5.0实战:10个你可能不知道的性能优化技巧与插件生态深度解析
前端·人工智能·后端
码上上班4 小时前
ubuntu 安装ragflow
linux·运维·ubuntu
天蓝色的鱼鱼4 小时前
Ant Design 6.0 正式发布:前端开发者的福音与革新
前端·react.js·ant design
HIT_Weston4 小时前
38、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(一)
linux·前端·ubuntu
百***86464 小时前
服务器部署,用 nginx 部署后页面刷新 404 问题,宝塔面板修改(修改 nginx.conf 配置文件)
运维·服务器·nginx