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) 协议,个人与增值服务提供商(例如银行、广告商和目录服务)之间每天交换数百万条短消息。通常,消息传送会延迟,因为服务器过载,流量在服务器之间分布不佳。NetScaler 支持 SMPP 负载平衡,并提供服务器间消息的最佳分发,防止性能不佳和中断。
当从客户端收到消息时,NetScaler 在服务器端执行负载平衡;当从服务器收到消息时,NetScaler 在客户端执行负载平衡。
NetScaler 对 SMPP 消息进行负载平衡具有以下好处:
- 更好的服务器负载分配,这意味着对最终用户的响应时间更短
- 服务器运行状况监视和更好的故障转移功能
- 无需更改客户端配置即可快速轻松地添加新服务器(消息中心)
- 高可用性
SMPP 简介
SMPP 是一种应用层协议,用于通过长期 TCP 连接在外部短消息实体 (ESME)、路由实体 (RE) 和消息中心 (MC) 之间传输短消息。它用于在朋友、联系人和银行(移动银行)、广告商(移动商务)和目录服务等第三方之间发送短信服务(SMS)消息。来自 ESME(非移动实体)的消息到达 MC,后者将其分发给手机等短消息实体 (SME)。中小企业还使用 SMPP 向第三方发送短消息(例如,用于购买产品、支付账单和转账)。这些消息到达 MC 并转发到目标 MC 或 ESME。
下图显示了移动网络中的不同 SMPP 实体:ESMES、RES 和 MC。
移动网络中不同 SMPP 实体的架构概述
注意:在整个文档中,“客户端”和“ESME”这两个术语可以互换使用。
ESME(客户端)以三种模式之一打开与 MC 的连接:作为发射器、接收器或收发器。作为发射器,它只能提交要传送的消息。作为接收者,它只能接收消息。作为收发器,ESME 既可以提交消息,也可以接收消息。ESME 向 MC 发送三条消息(也称为 PDU)中的一条:bind_transmenter、bind_receiver 或 bind_tractiver。MC 根据请求使用 bind_transmiter_resp、bind_receiver_resp 或 bind_transiver_resp 进行响应。
建立连接后,ESME 可以发送 submit_sm 或 data_sm 消息,接收 deliver_sm 或 data_sm 消息,或者发送和接收任何此类消息,具体取决于其绑定到 MC 的模式。ESME 还可以发送辅助消息,例如 query_sm、replace_sm 和 cancel_sm,以查询先前消息传输的状态、用新消息替换之前的消息或取消未传送的消息。
如果由于 ESME 不可用或移动订阅者不在线,消息未传送,则该消息将进入队列。之后,当 MC 检测到移动订阅者现在可以访问时,它会通过接收器或收发器会话向 ESME 发送 alert_notification PDU,请求传送任何排队消息。
每个请求 PDU 都有一个唯一的序列号。响应 PDU 的序列号与原始请求相同。由于通过 SMPP 的消息交换可以处于异步模式,因此 ESME 或 MC 一次可以发送多个请求。序列号在返回同一 SMPP 会话中的响应中起着至关重要的作用。换句话说,序列号使请求和响应的匹配成为可能。
下图显示了 ESME 绑定为收发器时流量如何使用各种 PDU。
限制:
NetScaler 设备不支持出站操作。也就是说,消息中心无法通过 NetScaler 设备启动与 ESME 的 SMPP 会话。
SMPP 负载平衡是如何在 NetScaler 上工作的
ESME(客户端)发送绑定消息以打开与 NetScaler 的连接。ADC 对每个 ESME 进行身份验证,如果成功,则以相应的消息进行响应。NetScaler 与每个消息中心建立连接,并在这些消息中心之间对所有消息进行负载平衡。当 ADC 收到来自客户端的消息时,它会重复使用与消息中心的开放连接,或者在打开的连接不可用时向消息中心发送绑定请求。
ADC 可以对来自客户端和服务器的消息进行负载平衡。它可以监视消息中心的运行状况并处理串联的消息。它还为消息中心提供内容交换支持。
源自 ESME 的消息
必须在 NetScaler 上将每个 ESME 添加为用户才能进行身份验证。客户端通过发送绑定请求与在 ADC 上配置的 SMPP 虚拟服务器建立 TCP 连接。ADC 对客户端进行身份验证,如果成功,则解析绑定消息。然后,ADC 将请求发送到通过配置的负载平衡方法选择的消息中心。如果与消息中心的连接不可重复使用,ADC 会通过向消息中心发送新的绑定请求来打开与消息中心的 TCP 连接。
在将响应(submit_sm_resp 或 data_sm_resp)从消息中心转发到客户端之前,ADC 会在消息 ID 中添加一个自定义服务器 ID,以标识客户端执行辅助操作(例如查询、替换或取消消息请求)的消息中心。来自其他客户端的请求以相同的方式进行负载平衡。
在原始绑定请求中,客户端指定了它可以提供的地址范围。此范围用于将 deliver_sm 或 data_sm 消息从消息中心转发到客户端。
源自消息中心的消息
可以处理特定地址范围的 ESME 被分组到一个群集中。群集中的所有节点都提供相同的证书。在群集中,仅使用循环方法进行负载平衡。为了传送来自移动设备的 (MO) 消息,消息中心向 NetScaler 发送 deliver_sm 消息。如果可以提供目标地址范围(例如,以 998 开头的数字)的群集绑定到 ADC,它会选择该群集,然后在该群集中的 ESME 节点之间对消息进行负载平衡。
如果可以为地址范围提供 deliver_sm 消息的 ESME 未绑定到 ADC,并且启用了消息队列,则消息将排入队列,直到此类客户端在接收器或收发器模式下绑定到 ADC 为止。您可以指定队列的大小。
下图说明了 esME、NetScaler 和消息中心之间的 PDU 的内部流动。为简单起见,仅显示两个 ESME 和两个消息中心。
报文流 (PDU):
- ESME1 向 NetScaler 发送绑定请求
- NetScaler 向 MC1 发送绑定请求
- MC1 向 NetScaler 发送绑定响应
- NetScaler 向 ESME1 发送绑定响应
- ESME1 向 NetScaler 发送 submit_sm (1)
- ESME1 向 NetScaler 发送 submit_sm (2)
- 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 向 NetScaler 发送 submit_sm (3)
- NetScaler 将 submit_sm (3) 转发到 MC1
- MC2 向 NetScaler 发送 deliver_sm(ESME2 提供消息中指定的地址范围)
- MC1 向 netScaler 发送 submit_sm_resp (3)
- NetScaler 将 submit_sm_resp (3) 转发给 ESME2
- NetScaler 将 deliver_sm 转发给 ESME2
- ESME2 向 NetScaler 发送 deliver_sm_resp
- MC1 向 NetScaler 发送 alert_notification(ESME1 提供消息中指定的地址范围)
- NetScaler 将 deliver_sm_resp 转发到 MC2
- NetScaler 将 alert_notification 转发给 ESME1
消息中心的运行状况监视
默认情况下,TCP_Default 监视器绑定到 SMPP 服务,但您可以绑定类型为 SMPP 的自定义监视器。自定义监视器打开与消息中心的 TCP 连接并发送 enquire_link 数据包。根据探测的成功或失败,该服务会被标记为 UP 或 DOWN。
在消息中心切换内容
消息中心可以接受来自 ESME 的多个连接(或绑定请求)。您可以将 NetScaler 配置为基于 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 会选择特定的消息中心。VMS 代表语音邮件系统。
示例:
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)
- 根据绑定类型:在以下示例表达式中,如果绑定类型为 TRASTRIVER,则 ADC 会选择特定的消息中心。(收发器可以发送和接收消息。)
示例:
SMPP.BINDINFO.TYPE.EQ(TRANSCEIVER)
串联消息处理
一条短信最多可容纳 140 字节。较长的消息必须分解为较小的部分。如果目标手机有能力,则将消息合并并作为一条长短信发送。NetScaler 将消息的片段转发到同一个消息中心。每条消息都包含参考号、序列号和片段总数。长消息的每个片段的参考编号是相同的。序列号指定特定片段在完整消息中的位置。收到所有片段后,ESME 将这些片段合并为一条长消息,并将消息传送给移动订阅者。
如果客户端断开与活动连接的连接,则与消息中心的连接不会关闭。它可以重复用于来自其他客户端的请求。
限制
不支持来自消息中心的长度超过 59 字节的消息 ID。如果消息中心返回的消息 ID 长度超过 59 字节,则辅助操作将失败,NetScaler 会使用错误消息进行响应。
在 NetScaler 上配置 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.