石育龙
摘要:一般SP增值平台由于用户量少,实时性不高,性能要求不高,所以构建技术简单。而像手机报、套餐类用户业务由于用户量大,信息实时要求高。因此,必须构建一个高效运行的平台才能满足实际业务需求。
关键词:SP;增值业务;大型平台构建;SMS;MMS
中图分类号:TN929.5文献标识码:A文章编号:1006-8937(2011)22-0088-02
1系统部署框架
操作系统:Linux平台 AS5.0以上或SUSE10.3以上。
数据库: mysql/oracle。
主要开发语言(脚本):C、php、perl。
物理服务器:建议6台以上(发送短信速度可以达到300条/s,彩信发送速度200条/s),实际部署可以调整。
2系统构建要点
系统构建框架如图1所示。
①网关、web服务、数据库双机心跳监测处理。采用heartbeat软件,当一台宕机时另外一台接管相应的服务。
②分布式技术构架。系统分为网关通讯层、发送代理层、kernel层、号段服务层、黑名单服务层、上行接收模块、上行业务处理、定制关系管理层。
网关层:负责与运营商短信、彩信网关、定制关系服务器通信。
发送代理层:负责缓冲下发,发送优先级处理;
kernel层:与号段、黑名单服务一起负责判断发送接收合理性。
上行接收模块、上行业务处理:上行模块接收不同接入号的短信,分发到不同上行业务处理。
定制关系管理层:处理用户的定制取消,调用不同的业务处理模块处理。
各个层可分布在不同服务器,各司其职,提高系统吞吐能力。
③需做二级缓冲,提高发送速度与成功率。对成批下发的短信/彩信业务,如果不做二级缓冲处理,直接对网关进行批量下发,必定造成网关的数据拥挤,容易产生数据丢失,发送成功率下降。 可采用一主线程监视多个子线程,而且数据采用高速缓冲区做存储,能够处理大批量的短信/彩信群发工作。在平台启动的时候,平台自动建立一个主线程来监视是否有短信/彩信下发数据,当遇到成批下发的短信/彩信时,如包月产品群发,群发处理模块先将群发内容以及相应数据进行手机过滤、信息收集、信息过滤操作后,统一写入群缓冲区,当主线程发现有新的群发数据的时候,会自动将处理的数据按预设定的大小放入服务器的高速缓存中做数据临时存储并自动开启一个子线程进行下发处理,这时数据保存在高速缓存里面,运行速度及快,不做任何数据库读写操作,而且可以按用户要求开启多个线程并发处理。 各子进程发送完数据后,主线程能自动负责释放资源,而且还分别对各子进程做了超时处理,如果到达预期的时间仍然没有做下发处理,该现象在子线程发生锁定现象后能遇到,此时主线程能将子线程中的数据收回,并将子线程杀死,开启一个新的线程并将数据移交给新子线程继续做下发处理。
④要有自动重发功能。由于各方面的原因,下发有可能无法正常下发到用户,这时需要对发送失败的记录进行处理。 需采用独立的重发机制能对发送失败的短信/彩信能自动进行数据重新采集,并做 2 次发送处理,如 3 次仍然不成功就停止发送操作,并将数据记录到发送失败日志。
⑤要能支持多运营商、多接入号。由于采用了分布式编程,增加运营商、或一个运营商多个接入号,只要增加网关层即可,配置相应的业务,其它层无须调整。
⑥可灵活编写业务处理程序。通讯层一般变化较少,而业务处理逻辑经常变化。业务处理层采用web页面编写,业务处理等通过http协议调用各个业务对应的页面,用户上行短信/彩信后系统调用不同页面处理业务逻辑,无需重启程序。程序员只要会基本的web编程就轻松应对。
⑦须提供开发接口。作为一个增值平台,必须有与其它系统有接口,实现下行、上行、定制关系与其它系统无缝对接。
⑧须有详尽的日志管理机制。各个服务层的处理过程都详细记录处理日志,当出现故障时,可查询到每一步日志,轻松排除系统故障,且系统定时压缩以前日志,以节约空间。
⑨系统故障及时告警。网关故障或本系统某个环节出项故障时,系统可以发送电子邮件、短信猫方式告警。让系统管理员第一时间排除故障。监控指标:多少时间没有上下行、定制关系、群发积压、磁盘空间、CPU、各个服务是否运行正常等。
3结语
由于本方案采用分布式多线程编程技术,大大提供了性能,提升了系统的吞吐能力。
完全可以满足了电信级别应用的需要。
参考文献:
[1] 中国移动通信集团公司.互联网短信网关接口协议[Z],2011.
[2] 中国移动通信集团公司.中国移动MISC1.6 Provision接口 使用手册[Z],2011.
[3] 中国移动通信集团公司中国移动.MM7 API用户手册[Z], 2011.
[4] 中国联合网络通信有限公司.短消息网关系统接口协议[Z],2011.