This content has been machine translated dynamically.
Dieser Inhalt ist eine maschinelle Übersetzung, die dynamisch erstellt wurde. (Haftungsausschluss)
Cet article a été traduit automatiquement de manière dynamique. (Clause de non responsabilité)
Este artículo lo ha traducido una máquina de forma dinámica. (Aviso legal)
此内容已经过机器动态翻译。 放弃
このコンテンツは動的に機械翻訳されています。免責事項
이 콘텐츠는 동적으로 기계 번역되었습니다. 책임 부인
Este texto foi traduzido automaticamente. (Aviso legal)
Questo contenuto è stato tradotto dinamicamente con traduzione automatica.(Esclusione di responsabilità))
This article has been machine translated.
Dieser Artikel wurde maschinell übersetzt. (Haftungsausschluss)
Ce article a été traduit automatiquement. (Clause de non responsabilité)
Este artículo ha sido traducido automáticamente. (Aviso legal)
この記事は機械翻訳されています.免責事項
이 기사는 기계 번역되었습니다.책임 부인
Este artigo foi traduzido automaticamente.(Aviso legal)
这篇文章已经过机器翻译.放弃
Questo articolo è stato tradotto automaticamente.(Esclusione di responsabilità))
Translation failed!
用例 1:SMPP 负载平衡
通过使用短消息对等 (SMPP) 协议,个人和增值服务提供商(如银行、广告商和目录服务)之间每天交换数百万条短消息。通常情况下,邮件传递会延迟,因为服务器负载过重,而且流量未在服务器之间以最佳方式分配。Citrix ADC 支持 SMPP 负载平衡,并在服务器之间提供最佳消息分配,从而防止性能不佳和中断。
Citrix ADC 在从客户端接收消息时在服务器端执行负载平衡,并在从服务器接收消息时在客户端执行负载平衡。
Citrix ADC 对 SMPP 消息进行负载平衡具有以下优势:
- 服务器上更好的负载分配,这意味着对最终用户的响应时间更快
- 服务器运行状况监视和更好的故障转移功能
- 快速轻松地添加新服务器(消息中心),无需更改客户端配置
- 高可用性
SMPP 简介
SMPP 是一种应用层协议,用于通过长期 TCP 连接在外部短消息实体 (ESME)、路由实体 (RE) 和消息中心 (MC) 之间传输短消息。它用于在朋友、联系人和银行(移动银行)、广告商(移动商务)和目录服务等第三方之间发送短信服务(SMS)消息。来自 ESME(非移动实体)的消息到达 MC,后者将这些消息分发给移动电话等短消息实体。SMPP 也被中小型企业用来向第三方发送短信(例如,购买产品、支付账单和资金转账)。这些消息到达 MC 并转发到目标 MC 或 ESME。
下图显示了移动网络中的不同 SMPP 实体:ESMES、RES 和 MC。
移动网络中不同 SMPP 实体的架构概述
注意:客户端和 ESME 术语在整个文档中可互换使用。
ESME(客户端)以三种模式之一打开与 MC 的连接:作为发射器、接收器或收发器。作为一个发射器,它只能提交消息进行传递。作为接收者,它只能接收消息。作为收发器,ESME 可以提交和接收消息。ESME 会向 MC 发送三条消息(也称为 PDU)中的一条:bind_transmitter、bind_receiver 或 bind_transceiver。MC 会根据请求的情况使用 bind_transmitter_resp、bind_receiver_resp 或 bind_transceiver_resp 进行响应。
建立连接后,ESME 可以根据其绑定到 MC 的模式,发送 submit_sm or data_sm message 消息,接收 deliver_sm or data_sm 消息,或发送和接收任何这些类型的消息。ESME 还可以发送辅助消息,例如 query_sm、replace_sm 和 cancel_sm,以查询早期邮件传递的状态、用新邮件替换早期邮件或取消未传递的邮件。
如果因 ESME 不可用或移动订阅者未联机而未传递邮件,则该邮件将排队。稍后,当 MC 检测到移动用户现在可以访问时,它会通过接收器或收发器会话向 ESME 发送一个 alert_通知PDU,请求传递任何排队的消息。
每个请求 PDU 都有一个唯一的序列号。响应 PDU 具有与原始请求相同的序列号。由于通过 SMPP 进行的消息交换可以处于异步模式,ESME 或 MC 可以一次发送多个请求。序列号在同一 SMPP 会话中返回响应方面起着关键作用。换句话说,序列号使请求和响应匹配成为可能。
下图显示了 ESME 绑定为收发器时流量如何使用各种 PDU。
限制:
Citrix ADC 设备不支持出站操作。也就是说,消息中心无法通过 Citrix ADC 设备启动带 ESME 的 SMPP 会话。
SMPP 负载平衡在 Citrix ADC 上的工作原理
ESME(客户端)发送绑定消息以打开与 Citrix ADC 的连接。ADC 对每个 ESME 进行身份验证,如果成功,则以适当的消息响应。Citrix ADC 与每个消息中心建立连接,并对这些消息中心之间的所有消息进行负载平衡。当 ADC 从客户端接收消息时,它会重新使用与消息中心的打开连接,或者在打开的连接不可用时向消息中心发送绑定请求。
ADC 可以负载平衡来自客户端和服务器的消息。它可以监视消息中心的运行状况并处理连接的消息。它还为消息中心提供内容切换支持。
源自欧洲和微型企业的报文
必须以用户身份在 Citrix ADC 上添加每个 ESME 以进行身份验证。客户端通过发送绑定请求,与 ADC 上配置的 SMPP 虚拟服务器建立 TCP 连接。ADC 对客户端进行身份验证,如果成功,则解析绑定消息。然后,ADC 将请求发送到配置的负载平衡方法选择的消息中心。如果与消息中心的连接无法重复使用,ADC 将通过向消息中心发送新的绑定请求来打开与消息中心的 TCP 连接。
在将响应 (submit_sm_resp 或 data_sm_resp) 从消息中心转发到客户端之前,ADC 会向消息 ID 添加一个自定义服务器 ID,以标识消息中心进行辅助操作(如查询、替换或取消消消息请求)。来自其他客户端的请求以相同的方式进行负载平衡。
在原始绑定请求中,客户端指定它可以提供的地址范围。此范围用于将传递 _sm 或 data_sm 邮件从邮件中心转发到客户端。
来自消息中心的邮件
可以处理特定地址范围的 ESMES 分组到一个群集中。群集中的所有节点都提供相同的凭据。在群集中,只使用轮询方法进行负载平衡。要传递移动源 (MO) 消息,消息中心会向 Citrix ADC 发送一条传递 _sm 消息。如果能够提供目标地址范围(例如,以 998 开头的数字)的群集绑定到 ADC,则会选择该群集,然后在该群集中的 ESME 节点之间负载平衡消息。
如果能够在地址范围内提供传递 _sm 消息的 ESME 未绑定到 ADC,并且消息队列已启用,则消息将排队,直到此类客户端以接收器或收发器模式绑定到 ADC。您可以指定队列的大小。
下图说明了 ESME、Citrix ADC 和消息中心之间 PDU 的内部流程。为简单起见,仅显示两个 ESME 和两个消息中心。
报文流 (PDU):
- ESME1 向 NetScaler 发送绑定请求
- NetScaler 将绑定请求发送到 MC1
- MC1 将绑定响应发送到 NetScaler
- NetScaler 将绑定响应发送到 ESME1
- ESME1 向 NetScaler 发送 submit_sm(1)
- ESME1 将 submit_sm(2) 发送到 NetScaler
- NetScaler 将 submit_sm(1) 转发到 MC1
- NetScaler 将绑定请求发送到 MC2
- MC2 将绑定响应发送到 NetScaler
- NetScaler 将 submit_sm(2) 转发到 MC2
- MC1 向 NetScaler 发送 submit_sm_resp(1)
- MC2 向 NetScaler 发送 submit_sm_resp(2)
- NetScaler 将 submit_sm_resp(1) 转发至 ESME1
- NetScaler 将 submit_sm_resp(2) 转发至 ESME1
- ESME2 向 NetScaler 发送绑定请求
- NetScaler 将绑定响应发送到 ESME2
- ESME2 将 submit_sm(3) 发送到 NetScaler
- NetScaler 将 submit_sm(3) 转发到 MC1
- MC2 将 deliver_sm 发送到 NetScaler(ESME2 提供消息中指定的地址范围)
- MC1 向 NetScaler 发送 submit_sm_resp(3)
- NetScaler 将 submit_sm_resp(3) 转发至 ESME2
- NetScaler 将 deliver_sm 转发至 ESME2
- ESME2 将 deliver_sm_resp 发送至 NetScaler
- MC1 向 NetScaler 发送 alert_notification(ESME1 提供消息中指定的地址范围)
- NetScaler 将 deliver_sm_resp 转发至 MC2
- NetScaler 将 alert_notification 转发到 ESME1
消息中心的运行状况监视
默认情况下,TCP_Default 监视器绑定到 SMPP 服务,但您可以绑定类型为 SMPP 的自定义监视器。自定义监视器打开到消息中心的 TCP 连接,并发送一个 enquire_link 数据包。根据探头的成功或失败,服务标记为“向上”或“向下”。
消息中心上的内容切换
消息中心可以接受来自 ESME 的多个连接(或绑定请求)。您可以将 Citrix ADC 配置为根据 SMPP 绑定参数进行内容切换这些请求。以下是一些用于配置方法以选择消息中心的常见表达式:
- 基于地址范围:在以下示例表达式中,如果地址范围从 988 开始,ADC 会选择特定的消息中心。
示例:
SMPP.BINDINFO.ADDRESS_RANGE.CONTAINS(“^988”)
- 基于 ESME ID:在以下示例表达式中,如果 ESME ID 等于 ESME1,ADC 会选择特定消息中心。
示例:
SMPP.BINDINFO.SYSTEM_ID.EQ(“ESME1”)
- 基于 ESME 类型:在以下示例表达式中,如果 ESME 类型为 VMS,ADC 会选择特定消息中心。虚拟机代表语音邮件系统。
示例:
SMPP.BINDINFO.SYSTEM_TYPE.EQ(“VMS”)
- 基于 ESME 的数字类型 (TON):在以下示例表达式中,如果 TON 等于 1(1 代表国际数字),ADC 会选择特定的消息中心。
示例:
SMPP.BINDINFO.ADDR_TON.EQ(1)
- 基于 ESME 的数字计划指示器 (NPI):在以下示例表达式中,如果 NPI 等于 0(0 表示未知连接),ADC 会选择特定的消息中心。
示例:
SMPP.BINDINFO.ADDR_NPI.EQ(0)
- 基于绑定类型:在以下示例表达式中,如果绑定类型为 TransCEVER,ADC 会选择特定的消息中心。(收发器可以发送和接收消息。)
示例:
SMPP.BINDINFO.TYPE.EQ(TRANSCEIVER)
连接消息处理
短信最多可容纳 140 个字节。较长的消息必须分解成较小的部分。如果目标移动设备有能力,则会将消息组合起来并作为一条长短信传递。Citrix ADC 会将消息片段转发到同一消息中心。每条消息都包含参考编号、序列号和片段总数。对于长消息的每个片段,参考编号是相同的。序列号指定特定片段在完整消息中的位置。在收到所有片段后,ESME 将这些片段合并为一条长消息,并将消息传递给移动用户。
如果客户端与活动连接断开连接,则与消息中心的连接不会关闭。它被重复用于来自其他客户端的请求。
限制
不支持来自消息中心的消息 ID 超过 59 字节。如果消息中心返回的消息 ID 长度超过 59 个字节,辅助操作将失败,Citrix ADC 会以错误消息响应。
在 Citrix ADC 上配置 SMPP 负载平衡
执行以下任务以在 ADC 上配置 SMPP 负载平衡:
- 添加一个 SMPP 用户。ADC 在接受来自用户的绑定请求之前对用户进行身份验证。用户通常是 ESME。
- 添加负载平衡虚拟服务器,将协议指定为 SMPP。
- 添加服务,将协议指定为 SMPP,并为每个服务器提供唯一的自定义服务器 ID。将服务绑定到之前创建的负载平衡虚拟服务器。
- 或者,创建服务组并将服务添加到服务组。
- 或者,添加类型为 SMPP-ECV 的监视器并将其绑定到服务。默认情况下,将绑定 TCP 默认监视器。
- 设置 SMPP 参数,如客户端模式和消息队列。
使用命令行配置 SMPP 负载平衡的步骤
在命令提示符下,键入:
add smpp user <username> -password <password>
add service <name> <IP> SMPP <port> –customserverID <customserverID>
add lb vserver <name> <IP> SMPP <port>
bind lb vserver <name> <service name>
set smpp param
<!--NeedCopy-->
示例
add smpp user smppclient1 -password c03ebb540695b6110eb31172f32245a1 -encrypted -encryptmethod ENCMTHD_2
add smpp user smppclient2 -password c03ebb540695b6110eb31172f32245a1 -encrypted -encryptmethod ENCMTHD_2
add service smmpsvc 10.102.84.140 SMPP 2775 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp ON -cltTimeout 180 -svrTimeout 360 -CustomServerID ab -CKA NO -TCPB NO -CMP NO
add service smmpsvc2 10.102.81.175 SMPP 2775 -gslb NONE -maxClient 0 -maxReq 0 -cip DISABLED -usip NO -useproxyport YES -sp ON -cltTimeout 180 -svrTimeout 360 -CustomServerID xy -CKA NO -TCPB NO -CMP NO
add lb vserver smppvs SMPP 10.102.239.179 2775 -persistenceType NONE -cltTimeout 180
bind lb vserver smppvs smmpsvc2
bind lb vserver smppvs smmpsvc
set smpp param -addrrange "d*"
<!--NeedCopy-->
使用配置实用程序配置 SMPP 负载平衡
- 导航到 “ 系统” > “用户管理” > “SMPP 用户”,然后添加 SMPP 用户。
- 导航到 流量管理 > 负载平衡 > 配置 SMPP 参数,然后根据部署的要求设置参数。
- 导航到 流量管理 > 负载平衡 > 虚拟服务器,然后添加 SMPP 类型的虚拟服务器。
- 在“服务”部分中单击,添加 SMPP 类型的服务,然后指定服务器 ID。
共享
共享
This Preview product documentation is Cloud Software Group Confidential.
You agree to hold this documentation confidential pursuant to the terms of your Cloud Software Group Beta/Tech Preview Agreement.
The development, release and timing of any features or functionality described in the Preview documentation remains at our sole discretion and are subject to change without notice or consultation.
The documentation is for informational purposes only and is not a commitment, promise or legal obligation to deliver any material, code or functionality and should not be relied upon in making Cloud Software Group product purchase decisions.
If you do not agree, select I DO NOT AGREE to exit.