异步通信,是指发送方不需要等待接收方的响应就可以继续执行下一条指令或者发送下一条数据的通信方式。
在异步通信中,发送端将数据打包成一个个帧,由接收端通过帧的起始符和终止符来识别帧的开始和结束。
异步通信具有以下优点:
1. 提高系统的吞吐量:发送方不需要等待接收方的响应就能继续执行下一条指令或发送下一条数据,从而提高了系统的吞吐量。
2. 降低了通信的开销:由于接收方不需要响应每个消息,所以减少了通信的开销。
3. 增强了系统的可靠性:异步通信可以通过多次尝试从接收方获取响应,从而提高了系统的可靠性。
异步通信常常被用于以下场景:
1. 大数据传输:对于大数据传输,异步通信可以将数据拆解成小块逐次传输,减少网络拥塞。
2. 需要实时响应:由于异步通信可以在数据传输的同时执行其他任务,可以实现实时响应的需求,如在线游戏服务。
3. 异构系统之间的数据交换:异步通信可以应用于不同厂商和不同平台之间的数据交换,如Web Service服务间的通信。
异步通信也存在一些缺点:
1. 实现难度高:异步通信需要处理应答丢失、数据包的乱序等问题,对通信的实现提出了较高的要求。
2. 可读性差:由于数据需要拆解成小块逐次发送,所以消息的可读性降低。
3. 不适用于短消息:由于异步通信需要完成多次通信才能实现一次有效的请求,不适用于短消息。