企业通信系统很容易陷入一个误区:
一开始只需要"发短信、打电话、发邮件",于是直接接几个通信供应商的 API 就上线了。
等业务规模扩大后,问题开始集中出现:
-
不同国家需要不同通信通道;
-
同一个业务接入多个供应商;
-
短信、语音、邮件分别维护一套逻辑;
-
某个运营商通道异常,业务无法快速切换;
-
高峰期消息堆积,延迟越来越高;
-
业务系统和通信供应商强绑定,更换供应商成本很高;
-
研发团队开始不断补充重试、路由、回调、黑名单、限流等逻辑。
到了这个阶段,企业真正缺的已经不是一个通信 API,而是一套可治理、可扩展、可观测、可演进的通信系统架构。
所以,企业通信系统技术规划的核心,并不是"选哪家云通信平台",而是:
如何把通信能力从业务代码中抽离出来,形成企业自己的通信基础设施。
一、企业通信系统技术规划,首先要回答5个问题
在开始做技术选型之前,建议先把以下问题梳理清楚。
1. 业务到底需要哪些通信能力?
常见能力包括:
-
国际短信
-
验证码短信
-
通知短信
-
营销短信
-
语音验证码
-
外呼
-
邮件
-
WhatsApp 等社交通信
-
WebRTC
-
SIP
-
通信数据分析
不要一上来就把所有通信能力全部建设。
应该按照业务优先级分阶段建设。
例如:
第一阶段
短信 + 邮件
第二阶段
语音 + SIP
第三阶段
WhatsApp/RCS 等 OTT 通道
第四阶段
统一消息编排和全渠道通信平台
技术规划应该服务于业务,而不是为了架构完整而架构完整。
二、第二个问题:通信系统的边界在哪里?
这是很多企业容易忽略的问题。
建议把系统拆成三个边界:
业务系统
↓
通信能力平台
↓
外部通信网络
例如电商系统只需要告诉通信平台:
给用户 8613800000000
发送订单支付成功通知
至于:
-
使用哪条短信通道;
-
使用什么 Sender ID;
-
是否需要模板;
-
选择哪个国家路由;
-
是否重试;
-
是否切换备用供应商;
-
如何处理运营商返回码;
这些都应该由通信平台负责。
业务系统不应该知道具体的运营商和通信供应商。
这其实是通信系统技术规划中非常重要的一条原则:
业务关注"发什么",通信平台负责"怎么发"。
三、通信平台建议采用分层架构
一个相对成熟的企业通信平台,可以抽象为:
┌─────────────────────────────┐
│ 业务应用层 │
│ 电商 / SaaS / 金融 / 游戏等 │
└──────────────┬──────────────┘
↓
┌─────────────────────────────┐
│ API 接入层 │
│ REST API / SMPP / SDK / Webhook │
└──────────────┬──────────────┘
↓
┌─────────────────────────────┐
│ 通信服务层 │
│ SMS / Email / Voice / OTT │
└──────────────┬──────────────┘
↓
┌─────────────────────────────┐
│ 调度与路由层 │
│ 路由 / 负载 / 重试 / 降级 │
└──────────────┬──────────────┘
↓
┌─────────────────────────────┐
│ 协议层 │
│ SMPP / HTTP / SIP / SMTP │
└──────────────┬──────────────┘
↓
┌─────────────────────────────┐
│ 通道层 │
│ 运营商 / Aggregator / Provider│
└─────────────────────────────┘
再往下,则是:
Redis / MQ / MySQL / ClickHouse
日志 / 监控 / 告警 / 数据分析
这种分层最大的价值是:
业务、通信逻辑、协议和供应商之间实现解耦。
四、技术规划的核心:不要让业务系统直接绑定供应商
假设企业直接在业务代码里写:
业务系统
↓
供应商A API
短期开发速度很快。
但一旦出现以下情况,系统就会变得非常被动:
-
供应商A价格上涨;
-
某个国家到达率下降;
-
某个供应商接口故障;
-
企业需要增加第二供应商;
-
不同国家需要不同路由;
-
供应商API格式不一致。
最终业务代码里面会出现大量:
if country == ...
if provider == ...
if error_code == ...
if retry == ...
这实际上是在把通信基础设施代码污染到业务系统中。
更合理的设计是:
业务系统
↓
统一通信 API
↓
通信调度平台
↓
┌──────┬──────┬──────┐
供应商A 供应商B 供应商C
以后更换供应商,只需要修改通信平台的适配层。
五、路由系统是通信平台的核心能力
对于国际通信业务来说,路由并不是简单的"随机选择一个供应商"。
真正的路由通常需要综合考虑:
国家
运营商
业务类型
消息类型
Sender ID
成本
到达率
延迟
通道状态
历史失败率
合规要求
例如:
中国
├─ 移动 → Route A
├─ 联通 → Route B
└─ 电信 → Route C
印度
├─ Vodafone → Route D
├─ Airtel → Route E
└─ Jio → Route F
进一步还可以建立动态路由:
Route A
成功率:98.7%
平均延迟:2.1s
Route B
成功率:91.2%
平均延迟:5.8s
当 Route A 出现异常时:
Route A
↓
失败率超过阈值
↓
自动降权
↓
Route B 权重提高
这就是从"静态路由"向"智能路由"演进。
六、消息系统必须考虑异步化
通信系统与普通 CRUD 系统最大的区别之一,就是:
通信请求具有明显的异步特征。
业务系统发起请求:
POST /sms/send
不应该一直等待运营商返回最终结果。
更合理的流程:
业务系统
↓
API
↓
消息队列
↓
调度服务
↓
路由引擎
↓
通信通道
↓
运营商
↓
状态回执
↓
Webhook
↓
业务系统
这样可以把:
请求速度
和
通信发送速度
解耦。
例如业务系统突然产生:
10万条短信
不会直接把供应商接口打爆,而是先进入消息队列。
然后由通信平台根据:
-
通道 TPS
-
国家限制
-
运营商限制
-
账号限流
-
优先级
逐步消费。
七、高并发设计,不只是增加服务器
很多通信系统在做性能规划时,第一个想到的是:
"服务器不够,那就加机器。"
但通信系统的瓶颈往往不在 Web Server。
更常见的瓶颈包括:
API QPS
↓
MQ 消费能力
↓
路由计算
↓
Redis
↓
数据库
↓
供应商 TPS
↓
运营商 TPS
例如:
企业内部可以处理:
10,000 TPS
但是供应商实际只允许:
500 TPS
那么继续扩容 API 服务器没有意义。
真正需要设计的是:
1. 限流
控制业务请求速度。
2. 削峰
通过 MQ 缓冲瞬时流量。
3. 优先级队列
验证码和营销消息不能使用完全相同的优先级。
4. 通道级限速
不同供应商、不同国家采用不同 TPS。
5. 异步回执
发送结果通过回调异步处理。
八、重试机制一定要单独设计
通信失败不代表应该立即无限重试。
建议把失败分成几类:
临时失败
↓
可以重试
通道失败
↓
切换备用通道
号码无效
↓
不重试
黑名单
↓
直接终止
合规拦截
↓
进入风险处理
未知异常
↓
人工/系统进一步判断
因此,通信平台需要建立统一的:
错误码体系 + 重试策略 + 降级策略。
例如:
Provider Error
↓
Error Mapping
↓
内部统一错误码
↓
Retry / Failover / Reject
不要让不同供应商的错误码直接暴露给业务系统。
九、可靠性规划:重点不是"永不出错",而是"出错后还能工作"
通信系统不可能保证所有环节永远正常。
真正成熟的架构应该考虑:
单通道故障
Route A ×
↓
Route B
单供应商故障
Provider A ×
↓
Provider B
单节点故障
Node A ×
↓
Node B
单机房故障
Region A ×
↓
Region B
数据库异常
需要考虑:
-
主从
-
高可用
-
数据备份
-
数据恢复
-
消息持久化
最终形成:
故障隔离 + 自动切换 + 降级 + 灾备
而不是单纯追求某一个服务"99.99%可用"。
十、监控体系必须从第一天开始设计
通信平台如果没有完善的监控,运营团队实际上是在"盲人开车"。
至少需要监控:
API层
-
QPS
-
P99延迟
-
HTTP错误率
-
超时率
消息层
-
MQ堆积量
-
消费速度
-
消息失败率
-
重试数量
通道层
-
发送量
-
成功率
-
到达率
-
平均延迟
-
供应商错误率
国家维度
Country
↓
Operator
↓
Provider
↓
Route
↓
Success Rate
最终最好能够回答:
"为什么今天印度短信到达率下降了?"
而不是只能看到:
"短信发送失败了。"
十一、数据架构也需要提前规划
通信系统每天可能产生大量数据。
典型数据包括:
Message
Message Event
Delivery Report
Provider Response
Webhook
Billing
Route Decision
User
Template
Blacklist
不要把所有数据都塞进一张 MySQL 表。
可以按照数据特点拆分:
MySQL
业务数据 / 配置数据
Redis
缓存 / 限流 / 实时状态
MQ
异步消息
ClickHouse
通信明细 / 统计分析
Object Storage
长期日志 / 归档数据
尤其是消息明细和统计分析,数据规模上来以后,OLTP数据库和分析型数据库最好分离。
十二、合规应该进入技术架构,而不是上线前补
国际通信最大的技术难点之一,其实并不是 API。
而是:
不同国家、不同运营商、不同通信场景存在不同的监管规则。
因此技术规划阶段就应该考虑:
-
Sender ID
-
模板管理
-
用户订阅与退订
-
黑名单
-
营销消息限制
-
国家级规则
-
运营商限制
-
数据保护
-
审计日志
可以设计一个独立的:
Compliance Engine
在消息进入发送系统之前完成判断:
Message
↓
Compliance Check
↓
Pass ─────→ Routing
│
Reject
↓
Risk / Audit
这样以后新增国家时,不需要修改大量业务代码。
十三、API设计要坚持"统一入口"
如果企业未来同时支持:
SMS
Email
Voice
WhatsApp
RCS
不建议每种产品完全独立设计一套调用方式。
可以逐步形成统一通信模型:
Message
├─ Channel
├─ Recipient
├─ Content
├─ Template
├─ Priority
├─ Callback
└─ Metadata
业务系统只需要描述:
谁
通过什么渠道
发送什么内容
通信平台负责:
怎么发送
走哪条路
什么时候发送
失败怎么办
结果如何返回
这也是从单一短信网关向 CPaaS 平台演进的重要基础。
十四、建议按照三个阶段进行技术建设
企业通信系统不建议一次性"大而全"。
第一阶段:通信能力接入
目标:
先把通信能力跑起来。
建设:
-
SMS API
-
Email API
-
基础供应商接入
-
消息记录
-
Webhook
-
基础监控
-
基础路由
第二阶段:平台化
目标:
从"能发送"变成"可运营"。
增加:
-
多供应商
-
智能路由
-
MQ
-
重试
-
限流
-
黑名单
-
模板
-
Sender ID
-
数据分析
-
计费系统
-
SLA监控
第三阶段:企业级通信基础设施
目标:
支撑全球业务规模化发展。
增加:
-
多区域部署
-
多活架构
-
自动故障切换
-
智能路由
-
实时风控
-
通信数据平台
-
全渠道编排
-
完善的合规引擎
-
自动化运维
这个演进过程比一开始就设计一个复杂的"全球多活超级平台"更加现实。
十五、技术选型时,建议重点关注这7个指标
如果企业准备采购云通信平台,或者自研通信中台,可以从以下维度评估:
| 维度 | 核心问题 |
|---|---|
| 通道 | 是否覆盖目标国家和运营商 |
| 到达率 | 是否有真实、可验证的数据 |
| 稳定性 | 是否具备故障切换能力 |
| API | 是否标准化、易集成 |
| 扩展性 | 是否支持多供应商和多通信渠道 |
| 合规 | 是否支持国家级合规能力 |
| 可观测性 | 是否能定位到国家、运营商、通道 |
尤其需要注意:
"覆盖200多个国家"本身没有太大意义。
真正应该问的是:
我的目标国家,具体覆盖哪些运营商?
是直连还是聚合?
高峰期TPS是多少?
是否支持备用路由?
到达率如何统计?
失败之后怎么处理?
这些问题才真正决定通信系统的质量。
十六、最终的技术规划,可以归纳成一张图
企业通信系统最终可以形成这样的技术体系:
业务应用
│
┌────────────┼────────────┐
↓ ↓ ↓
电商 SaaS 金融
│ │ │
└────────────┼────────────┘
↓
统一通信 API
↓
┌────────────────┐
│ 通信服务编排层 │
└───────┬────────┘
↓
┌────────────────┐
│ 路由 / 调度引擎 │
└───────┬────────┘
↓
┌─────────────┼─────────────┐
↓ ↓ ↓
SMS Email Voice
↓ ↓ ↓
SMPP SMTP SIP
│ │ │
└─────────────┼─────────────┘
↓
全球通信供应商
↓
运营商网络
─────────────────────────────
Redis / MQ / DB / Analytics
Monitoring / Risk / Compliance
─────────────────────────────
这套架构的关键并不是技术组件有多少,而是每一层都有明确职责。
结语:好的通信系统规划,本质上是在规划企业未来的通信能力
企业通信系统建设,最容易犯的错误是从"供应商API"开始。
更合理的顺序应该是:
业务需求
↓
通信能力
↓
系统边界
↓
架构分层
↓
接口标准
↓
路由策略
↓
高并发设计
↓
可靠性
↓
合规
↓
监控与数据
↓
技术选型
尤其对于出海企业来说,通信系统不是一个简单的基础工具。
短信、邮件、语音以及未来的 WhatsApp、RCS 等渠道,都会逐渐成为用户生命周期中的基础触点。
因此,企业真正应该建设的不是"一个短信接口",而是:
一套能够连接全球通信网络,并且可以随着业务增长持续演进的通信基础设施。
这也是企业通信系统技术规划最核心的目标。