● 摘要
自1992年的12月3日世界上第一条短信在英国诞生以来,人类已经发送了上百万亿条短信,20多年间,短信为人类的沟通作出了难以磨灭的贡献。然而随着3G/4G时代的到来,以微信为代表的媒体IM(即时通讯、实时传讯)工具,无论从信息内容的形式丰富多样,还是费用的低廉角度,相对于短信,均有过之而无不及。众所周知,短信发送通常有两点模式:点对点收发,和点对多的群发或者点播。微信对于短信影响巨大的是点对点的收发,点对多的短信群发仍然表现出她强大的生命力:用于向手机用户发送身份认证、消息通知、账户变化、物流详情、营销商品等各类信息。
本文旨在设计和实现一个操作简单,安全,稳定,长时间高效运行的B/S架构的短信群发系统。本系统可以为公司的相关业务部门和技术开发部门提供短信收发的功能,在此基础上还提供了相关的统计分析的功能。通过对各部门提出的需求进行综合分析,针对公司的具体业务,确定了本系统的关键部分和需求难点。首先是如何实现三网的短信群发和接收,按照与各网关的连接方式不同,分别做了不同的设计。如何使短信能够实现有序的收发,这里面就涉及到了多线程的问题。本文采用了JAVA1.5的线程池新特性,设计了短信接收,短信发送,短信重发和故障处理等线程。将任务线程放入线程池中,通过线程池来管理线程之间的操作,线程之间的管理是本文的难点之一。如何保证系统能够安全稳定的运行也是本系统的一个重点,在系统安全性方面,我们主要采取关键参数校验并利用简单算法实现防跨站脚本攻击,同时采取IP登录限制机制,来保证系统安全;针对业务安全问题,通过手机号黑名单,内容白名单以及脏字典的三重保护机制,实现了短信发送内容的绝对安全。针对数据响应实时性、数据容灾处理等问题做了论述,并给出了具体的解决方案。通过对数据库的主从备份机制,将主库不加索引,从库加索引的机制,查询读从库,写入读主库,不仅实现了数据响应的实时性,还实现了数据的容灾处理。
通过详细的需求分析,系统的设计,以及对关键问题的解决。目前本系统已经顺利上线运行。一方面可以安全、高效的与移动、联通、电信等多家运营商短信网关进行消息传递,完成短信收发功能;另一面针对公司的具体业务支持良好。目前系统运行三个月没有发现故障,高峰期发送短信量几百万条,系统稳定,未出现宕机现象。
相关内容
相关标签