手机话费充值平台之架构设计
该平台面向三类用户:下家(合作商),上家(代理商),平台管理员。该平台提供给下家的功能包括:合作商入驻、充值价格查询、充值接口,充值结果查询、对账接口等。平台可以接入多个上家,根据每个上家充值接口的服务质量,充值时动态切换上家,目前暂时只接入一个上家。平台还提供了手机号码归属地查询接口,可以自动切换该接口的多个实现,以实现该接口的高可用。手机话费空中充值的流程如下:用户在下家网站上输入手机号码和充值面值,下家调用平台的充值价格查询接口,用户确认价格并支付成功之后,调用平台的充值接口。平台提供了充值结果异步通知接口。下家与平台之间的通讯协议是使用https,平台与上家之间的通讯协议是使用TCP。使用netty封装了平台与上家之间的通讯,可以自定义协议和很好的解决TCP的拆包,粘包等问题,因为使用l了TCP的keepalive。所以会使用心跳维持这个连接。每次调用上家充值接口,会传递一个不重复的有规则的序列号,序列号的生成使用了MySQLMaxValueIncrementer,如下配置所示: <bean id="messageSequence" class="org.springframework.jdbc.support.incrementer.MySQLMaxValueIncrementer"> <property name="incrementerName" value="t