信息交换平台异步通信解决方案 Active MQ
一、现在信息交换平台现状及存在的问题
信息交换平台目前主要是通过HTTP/HTTPS来接受来自各种客户端post 的数据,接受到数据后,读取 post 请求的数据流,解析为 xml,通过翻译转换后派发给注册的业务处理插件,处理完毕后将结果以httpResponse 的方式返回给客户端,客户端读取返回结果,判断请求是否成功的被 服务器处理。其处理过程如下图所示:
从以上描述可以看出存在下面的问题:
1.无法完成负载均衡。
2.异步请求难以实现。 而对于同步请求,如果出现网络异常或者在做耗时长的数据处理时,客户会陷入漫长的等待中,这将严重影响客户的检验效果。
3.有些业务本身就是异步的,如定时数据汇总等,这种情况下回让客户感觉很奇怪。
4.在出现异常时(如网络中断,等待结果超时或者客户端系统重新启动等) ,不能保证数据一致性。
5.很难充分地利用服务端的资源——所有客户端来的请求接收完成后必须马上处理,没有机会根据应用服务器上的负载情况进行实时的调度。
二、需求问题解决
从上面的分析可以看出我们需要一个跨集群的通信平台,通过合理的部署,该平台可以:
1.跨广域网的数据交换能力
2. 高可靠性:对用户每次传输的数据做“唯一标识” ,一旦用户数据进入平台,必须提供严格的数据一致
性,无论任何类型的异常情况出现客户的数据都不应该重复或者丢失。
3. 高可用性:只要本地部署的节点中有一个可用就可以继续缓存或者向远端传输用户的数据。
4. 负载均衡能力:可以做一定程度的缓冲或者分发以充分利用服务端资源。
5.异步通信能力
6.提供一定程度的数据组合逻辑支持
7.易于扩展
根据以上的分析,消息中间件是最好的选择。本方案也将使用 Active MQ 构建集群通信台来解决外部交换
平台所面临的问题,而Active MQ 的具体实现就是JMS.
以下链接是JMS的解释说明 :http://blog.csdn.net/jiuqiyuliang/article/details/46701559