1. 异步通信框架的需求概述

来源:互联网 发布:淘宝网店新店怎么运营 编辑:程序博客网 时间:2024/05/22 04:56

在海量连接数,高吞吐量的通信需求下,采用同步通信架构,其并发能力不能满足需求。

异步通信架构则专门适用这类需求。

 

异步通信的特征就是 接受客户端连接、客户端数据可读、客户端数据可写、客户端连接断开都是事件形势存在。

从系统层面看,异步通信技术支撑有两种:(1)伯克利socket轮询模式;(2)异步事件回调模式(典型的如Windows API)。

回调模式,从技术角度来说,效率更高,但是平台依赖性高;socket 轮询模式则是标准的接口。

 

Java的NIO,提供的就是异步轮询模式。

 

异步通信的典型应用场景:

      海量客户端,每个客户端可能主动上行数据,也可能被动接收并执行服务端主动下行的命令;

      概括起来说,就是客户端连接数量巨大,通信全双工非应答模式,例如电力的智能终端采集设备。

 

 

异步通信架构的技术需求:

(1)高连接数支持;

(2)高速的数据读写并发支持;

(3)对通信报文的可靠性提供支持(TCP通信由于系统原因,不能保证不丢包,需要应用架构来保证);

 

异步通信模式的复杂性,必然导致编程模型的复杂。因此为了方便开发与使用,提出如下需求:

(4) 数据报文的识别与处理,采用一致的编程模型,即符合接口规范,“插入”到通信框架,使得程序员关注报文的业务处理;

(5)良好的调试信息输出;即框架支持吞吐量等管理需求;

 

综上所述,我提出了通用的基于事件驱动的异步通信模型。

 

PS.  本架构已经在浙江电力采集系统得到应用,部署于Linux系统,压力测试下,支持了12万终端客户端长连接。