同步方式的消息发送和异步方式的消息发送
2011-09-01 16:58
423 查看
通信有两类不同的基本方式: 具有依时性的同步方式以及与时间无关的异步方式。消息传送中间件有许多不同类型, 它们分别都能够支持一类基本方式的消息通信, 有时可以支持两类方式。
根据定义, 同步执行的特征为: 在两个通信应用系统之间必须要进行同步, 两个系统必须都在正常运行, 并且会中断客户端的执行流, 转而执行调用。发送程序和接收程序都必须一直做好相互通信的准备。发送程序首先向接收程序发起一个请求(发送消息)。发送程序紧接着就会堵塞它自身的进程, 直到收到接收程序的响应。发送程序在收到响应后会继续向下进行处理。同步方式的请求/响应通信如图2.6所示。在2.4节中, 将讨论同步通信的一个具体实例——远程过程调用。
当使用异步消息传送时, 调用者在发送消息以后可以不用等待响应, 可以接着处理其他任务。对于异步通信, 一个应用程序(请求者或发送者)将请求发送给另一个应用程序, 然后可以继续向下执行它自身的其他任务。发送程序无须等待接收程序的执行和返回结果, 而是可以继续处理其他请求。与同步方式不同, 异步方式中两个应用系统(发送程序和接收程序)无须同时都在运行, 也无须同时都在处理通信任务。
通常使用排队机制来实现异步消息传送。有两种不同类型的排队方式: 存储/转发、 发布/订阅, 在2.5节中将讨论这两类排队方式。
在选择通信方式的类型时, 必须仔细斟酌松耦合接口和紧耦合接口的利弊, 以及异步交互和同步交互的利弊。在下面的两节中, 我们将更详细地讨论这些通信方式。
根据定义, 同步执行的特征为: 在两个通信应用系统之间必须要进行同步, 两个系统必须都在正常运行, 并且会中断客户端的执行流, 转而执行调用。发送程序和接收程序都必须一直做好相互通信的准备。发送程序首先向接收程序发起一个请求(发送消息)。发送程序紧接着就会堵塞它自身的进程, 直到收到接收程序的响应。发送程序在收到响应后会继续向下进行处理。同步方式的请求/响应通信如图2.6所示。在2.4节中, 将讨论同步通信的一个具体实例——远程过程调用。
通常使用排队机制来实现异步消息传送。有两种不同类型的排队方式: 存储/转发、 发布/订阅, 在2.5节中将讨论这两类排队方式。
在选择通信方式的类型时, 必须仔细斟酌松耦合接口和紧耦合接口的利弊, 以及异步交互和同步交互的利弊。在下面的两节中, 我们将更详细地讨论这些通信方式。
相关文章推荐
- ActiveMQ生产者以同步和异步方式发送消息
- 同步方式的消息发送和异步方式的消息发送
- 同步和异步Httpclient通过get和post方式发送请求
- MFC发送消息函数PostMessage(异步)和SendMessage(同步)的异同
- JMS 中消息的 同步消费 和 异步消费(listener的方式)
- Netty:实现同步发送并接收消息的一种方式
- ActiveMQ的Topic方式实现异步的邮件发送和接收消息(m 3ff0
- 消息的同步发送,异步发送以及消息发送的可靠性
- [转载]XMLHTTP同步与异步发送数据
- 三种复位方式: 同步复位、异步复位、异步复位同步释放
- boost::asio的同步方式和异步方式网络编程
- JS的加载方式---同步和异步
- Extjs ajax同步请求时post方式参数发送方式
- RabbitMQ学习(九)之spring整合发送同步消息
- AJAX下的请求方式以及同步异步的区别小结
- GCD编程dispatch_sync(同步)和dispatch_async(异步)方式执行并发队列任务区别
- RabbitMQ学习之spring整合发送同步消息
- C#同步、异步发送邮件
- MFC同步和异步消息
- 利用Spring框架封装的JavaMail实现同步或异步邮件发送