- 25
- 0
- 约2.48千字
- 约 15页
- 2016-11-27 发布于河南
- 举报
rabbitmq
RabbitMQ简介RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。协议AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。几个基本概念Exchange:交换机,决定了消息路由规则;Queue:消息队列;Channel:进行消息读写的通道;Bind:绑定了Queue和Exchange,意即为符合什么样路由规则的消息,将会放置入哪一个/view/262473.htm消息队列;使用过程消息队列的使用过程大概如下:(1)客户端连接到消息队列服务器,打开一个channel。(2)客户端声明一个exchange,并设置相关属性。(3)客户端声明一个queue,并设置相关属性。(4)客户端使用routing key,在exchange和queue之间建立好绑定关系。(5)客户端投递消息到exchange。Exchange类型exchange有几种类型1、完全根据key进行投递的叫做Direct交换机,例如,绑定时设置了routing key为”abc”,那么客户端提交的消息,只有设置了key为”abc”的才会投递到队列。2、对key进行模式匹配后进行投递的叫做Topic交换机,符号”#”匹配一个或多个词,符号”*”匹配正好一个词。例如”abc.#”匹配”abc.def.ghi”,”abc.*”只匹配”abc.def”。3、还有一种不需要key的,叫做Fanout交换机,它采取广播模式,一个消息进来时,投递到与该交换机绑定的所有队列。4、headers类型的Exchange不依赖于routing key与binding key的匹配规则来路由消息,而是根据发送的消息内容中的headers属性进行匹配。持久化RabbitMQ支持消息的持久化,为了数据安全考虑,我想大多数用户都会选择持久化。消息队列持久化包括3个部分:(1)exchange持久化,在声明时指定durable = 1(2)queue持久化,在声明时指定durable = 1(3)消息持久化,在投递时指定delivery_mode = 2(1是非持久化)应用场景-名词解释RabbitMQ是一个消息代理,从“生产者”接收消息并传递消息至“消费者”。“生产者”也即message发送者以下简称P,相对应的“消费者”乃message接收者以下简称C,message通过queue由P到C,多个P可向同一queue发送message,多个C可从同一个queue接收message。应用场景-1“Hello Word”一个P向queue发送一个message,一个C从该queue接收message并打印。应用场景-2work queues将耗时的消息处理通过队列分配给多个consumer来处理,我们称此处的consumer为worker,我们将此处的queue称为Task Queue,其目的是为了避免资源密集型的task的同步处理,也即立即处理task并等待完成。相反,调度task使其稍后被处理。也即把task封装进message并发送到task queue,worker进程在后台运行,从task queue取出task并执行job,若运行了多个worker,则task可在多个worker间分配。应用场景-3Publish/Subscribe在应用场景2中一个message(task)仅被传递给了一个comsumer(worker)。现在我们设法将一个message传递给多个consumer。这种模式被称为publish/subscribe。此处以一个简单的日志系统为例进行说明。该系统包含一个log发送程序和一个log接收并打印的程序。由log发送者发送到queue的消息可以被所有运行的log接收者接收。因此,我们可以运行一个log接收者直接在屏幕上显示log,同时运行另一个log接收者将log写入磁盘文件。应用场景4-Routing应用场景3中构建了简单的log系统,可以将log message广播至多个receiver。现在我们将考虑只把指定的message类型发送给其subscriber,比如,只把error message写到log file而将所有log message显示在控制台。应用
您可能关注的文档
最近下载
- XCT80L6_1汽车起重机技术规格书.pdf VIP
- 索尼SW7600GR中文说明书.pdf
- 2026年时事政治测试题库100道附参考答案(完整版).docx VIP
- 儿科抢救药品临床应用与管理.pptx VIP
- 河北广谋新材料科技有限公司年产600万平方米复合革及隔音布、400万平方米新型复合网项目环境影响报告表.docx VIP
- 部编版语文五年级下册第七单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第六单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第五单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第四单元教材解读大单元集体备课.pptx VIP
- 部编版语文五年级下册第三单元教材解读大单元集体备课.pptx VIP
原创力文档

文档评论(0)