rabbitmq 学习-7-rabbitmq 支持场景
2010-10-19 18:51
190 查看
What messaging scenarios are supported by AMQP and RabbitMQ? AMQP is a very general system that can be configured to cover a great variety of messaging middleware use-cases. For example: Point-to-point communication One of the simplest and most common scenarios is for a message producer to transmit a message addressed to a particular message consumer. AMQP covers this scenario by allowing queues to be named and to be bound to a "direct" exchange, which routes messages to queues by name.
One-to-many broadcasting (including multicast) In this scenario, the broadcasters publish messages to an AMQP "fanout" exchange, and subscribers create and subscribe to their own private AMQP queues, which forward published messages on to them, with one copy per queue. Multicast is addressed at the broker implementation level. AMQP clients need not be made aware of transport-level optimisations such as multicast: broker clusters are free to use whatever such low-level optimisations are available from configuration to configuration. Multiple optimisations are possible, since AMQP separates routing logic (exchanges and bindings) from message queueing (queues). Multicast relates only to routing from message publishers to message queues, and as a routing optimisation can be completely physically decoupled from AMQP's logical semantics. Further optimisations include physical separation of exchange from queue or even colocation of queue with a consumer application.
Transactional publication and acknowledgement AMQP supports transactional publication, where an AMQP channel is opened, transactional mode is selected, messages are published and acknowledged, and the transaction is committed. The system guarantees atomicity and durability properties for transactional message activity.
High-speed transient message flows Messages are individually flagged as transient or persistent in AMQP at the time of publication. By sending messages outside the transactional part of the protocol, in non-persistent mode, an application can achieve very high throughput and low latency.
Reliable persistent message delivery Messages that are published in persistent mode are logged to disk for durability. If the server is restarted, the system ensures that received persistent messages are not lost. The transactional part of the protocol provides the final piece of the puzzle, by allowing the server to communicate its definite receipt of a set of published messages.
Store-and-forward Store-and-forward is implemented by delivering messages marked as "persistent" to AMQP's durable queues. Published, persistent messages delivered to durable queues are stored on disk until a consumer retrieves and deletes them.
Wide area messaging Because routing logic is decoupled from message delivery, RabbitMQ is able to support extended broker clustering across WANs. Some of the approaches include AJAX-style access to AMQP resources, and spanning-tree pseudo-multicast implemented internally to a RabbitMQ cluster.
File streaming The AMQP protocol, version 0-8, supports file streaming by way of the de>filede> content class. Very large files are transferred to a temporary area on the broker before being routed to queues for download by consumers.
本文摘自:http://sunjun041640.blog.163.com/blog/static/256268322010328105536717/
One-to-many broadcasting (including multicast) In this scenario, the broadcasters publish messages to an AMQP "fanout" exchange, and subscribers create and subscribe to their own private AMQP queues, which forward published messages on to them, with one copy per queue. Multicast is addressed at the broker implementation level. AMQP clients need not be made aware of transport-level optimisations such as multicast: broker clusters are free to use whatever such low-level optimisations are available from configuration to configuration. Multiple optimisations are possible, since AMQP separates routing logic (exchanges and bindings) from message queueing (queues). Multicast relates only to routing from message publishers to message queues, and as a routing optimisation can be completely physically decoupled from AMQP's logical semantics. Further optimisations include physical separation of exchange from queue or even colocation of queue with a consumer application.
Transactional publication and acknowledgement AMQP supports transactional publication, where an AMQP channel is opened, transactional mode is selected, messages are published and acknowledged, and the transaction is committed. The system guarantees atomicity and durability properties for transactional message activity.
High-speed transient message flows Messages are individually flagged as transient or persistent in AMQP at the time of publication. By sending messages outside the transactional part of the protocol, in non-persistent mode, an application can achieve very high throughput and low latency.
Reliable persistent message delivery Messages that are published in persistent mode are logged to disk for durability. If the server is restarted, the system ensures that received persistent messages are not lost. The transactional part of the protocol provides the final piece of the puzzle, by allowing the server to communicate its definite receipt of a set of published messages.
Store-and-forward Store-and-forward is implemented by delivering messages marked as "persistent" to AMQP's durable queues. Published, persistent messages delivered to durable queues are stored on disk until a consumer retrieves and deletes them.
Wide area messaging Because routing logic is decoupled from message delivery, RabbitMQ is able to support extended broker clustering across WANs. Some of the approaches include AJAX-style access to AMQP resources, and spanning-tree pseudo-multicast implemented internally to a RabbitMQ cluster.
File streaming The AMQP protocol, version 0-8, supports file streaming by way of the de>filede> content class. Very large files are transferred to a temporary area on the broker before being routed to queues for download by consumers.
本文摘自:http://sunjun041640.blog.163.com/blog/static/256268322010328105536717/
相关文章推荐
- rabbitmq 学习-7-rabbitmq 支持场景
- RabbitMQ学习之(一)_初步了解RabbitMQ、RabbitMQ的使用流程、为什么要使用RabbitMQ、RabbitMQ的应用场景
- RabbitMQ学习2---使用场景
- 修改Cosbench源码 支持s3的 http range request 测试场景
- erlang Cowlib用于操纵Web协议的支持库(未学习)
- unity学习笔记【场景加载】
- rabbitmq 学习总结
- RabbitMQ学习之:(一)初识、概念及心得
- ASP.NET AJAX的国际化与本地化支持(学习笔记)
- 渗透学习笔记--场景篇--通过mysql的root账号来get shell
- jQuery学习笔记——JQuery所支持的基本CSS选择器
- XSLT学习笔记--NET Framework对XSLT的支持(1)
- ASP.NET支持多语言<拿来收藏一哈,学习学习……>
- RabbitMQ 6种应用场景
- hadoop学习笔记二_MapReduce应用场景、原理、基本架构
- c++学习笔记(二):c++拷贝构造函数应用的四种场景
- rabbitmq demo学习
- rabbitmq 学习-9- RpcClient发送消息和同步接收消息原理
- HTML5学习笔记:HTML5基于本地存储SQLite的每日工作任务清单程序.[只支持chrome]
- RabbitMQ (消息队列)专题学习01 RabbitMQ部署