`

RabbitMq

阅读更多
一、DEMO

http://www.open-open.com/lib/view/open1453350095355.html

二、概念

参考博文:
http://blog.csdn.net/anzhsoft/article/details/19563091

1.RabbitMQ Server
数据传输:将数据从生产者端传输到消费者端
流程描述:生产者将消息发送给Exchange ,Exhcnage 根据自身的配置模式,将消息发送对绑定在自身的queue队列中;消费者端,当有消息到达队列中时,会通知监听在对应队列上的监听对象。对消息进行消费,消费一条队列中减少一条。


2.生产者
传递数据及 ExchangeKey(Exchange 的编号)、RoutingKey(Queue 的编号,如果是点对点的传输时,广播方式此值无效)

3.消费者
接收数据,当队列中有消息时,会通知订阅该队列的监听对应进行消息的处理,此时,并不关心消息是由谁发送过来的,只关注消息本身

4.Exchange
交换机,对发送到交换机上的数据进行处理,三种模式

名称英文解释
广播fanout配置在此Exchange模式下的队列一次消费发送的消息
点对点direct根据 routeKey 指定传输到 对应的队列上
主题topic正则匹配,一系列队列,ab#,则匹配:abc、abd 的队列


5.Route
当 Exchange 的模式为 direct 时,有效
发送到 Exchange 上的消息,会按照 route 的值,转发到指定的 queue 上

6.binding
将队列绑定到 Exchange 上

<rabbit:direct-exchange name="exchangeTest" durable="true" auto-delete="false">
<rabbit:bindings>
<rabbit:binding queue="queueTest" key="queueTestKey"></rabbit:binding>
</rabbit:bindings>
</rabbit:direct-exchange>


三、其他

1.队列创建

消费者 consumer 与 生产者 producer 都需要创建队列

解释:
若 生产者未创建队列,则消息发送到 Exchange 时,无法找到对应的队列,则消息发送失败

若 消费者未创建队列,则无法获取消息

2.消息消费

若队列中信息未消费,无消费者,数据会被放入cache中缓存,而不是丢弃;当有consumer消费者时,消息会被消费并从队列中删除。

队列的确认机制:消费者消费一条消息,ack 反馈消息已处理。

若未反馈(ack):程序出现BUG,或未执行 ack 操作,则不会再发送消息给此 queue ,RabbitMq Server 会认为此 消费者无能力处理。

3.服务重新启动而不会丢失信息
Durable 持久化,队列进行了持久化处理





分享到:
评论

相关推荐

    RabbitMQ快速入门及API介绍(401M)

    【课程目录】:---第一章:RabbitMQ介绍----1-什么是消息中间件.mp4----2-RabbitMQ消息队列安装:window环境.mp4----3-RabbitMQ消息队列安装 :Linux环境.mp4----4-Rabbitmq入口示例:server.mp4----5-rabbitmq入口...

    批量删除rabbitmq的队列或交换机

    采用python编写的批量删除rabbitmq的队列或交换机。 1.修改rabbitmq_delete.py中rabbitmq的配置; 2.执行以下命令: 删除队列: python3 rabbitmq_delete.py -k ‘udata.climb’ -d 1 删除交换机: python3 rabbitmq_...

    rabbitmq-java (2).zip

    rabbitmq

    rabbitmq配置文件 rabbitmq.config

    rabbitmq配置文件,用于rabbitmq管理

    RabbitMQ工具类及测试类(完整版)

    RabbitMQClientUtil是MQ的测试工具类,他封装了fanout、direct、topic三种exchange模式,并包括发送数据和接收数据。...rabbitmq.properties配置文件根据自己需要自行放在,放置完毕后,请自己修改util中的文件地址

    RabbitMQ rabbitmq-server-3.6.12-1.el6.noarch 及其安装所需要的软件打包

    RabbitMQ rabbitmq-server-3.6.12-1.el6.noarch 及其安装所需要的软件打包都在这里面,主要报卡一下软件:socat-1.7.3.2.tar.gz、rabbitmq-server-3.6.12-1.el6.noarch.rpm、rabbitmq-release-signing-key.asc、otp_...

    【BAT必备】rabbitMq面试题

    【BAT必备】rabbitMq面试题【BAT必备】rabbitMq面试题【BAT必备】rabbitMq面试题【BAT必备】rabbitMq面试题【BAT必备】rabbitMq面试题【BAT必备】rabbitMq面试题【BAT必备】rabbitMq面试题【BAT必备】rabbitMq面试题...

    SpringBoot整合RabbitMQ.zip

    SpringBoot整合RabbitMQ的详细过程 **1.该篇博文首先讲述了交换机和队列之间的绑定关系** ①direct、②fanout、③topic **2.然后讲消息的回调** 四种情况下,确认触发哪个回调函数: ①消息推送到server,但是在...

    rabbitmq-server-3.7.3

    RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在...

    windows版本rabbitmq安装包

    windows版本rabbitmq安装包 里面内含rabbitmq-server-3.9.13.exe、otp_win64_24 内含rabbitmq_delayed_message_exchange-3.9.0.ez 插件

    ARM版本的 rabbitmq docker镜像资源

    ARM版本的 rabbitmq 镜像资源 版本 3.8.9 使用拷贝到主机 执行:docker load &lt; rabbitmq_arm3.8.9.tar 生成docker镜像

    rabbitmq 3.9.3 配置文件

    rabbitmq 3.9.3 配置文件

    tp6使用rabbitmq

    tp6使用rabbitmq

    rabbitmqadmin

    RabbitMQ命令行手动创建队列rabbitmqadmin用法 手动创建队列方法:登录http://ip:15672/cli下载 将下载的rabbitmqadmin放到/usr/sbin目录下,并赋予权限:chmod 755 rabbitmqadmin 查看命令帮助信息: python ...

    flink-sql集成rabbitmq

    flink-sql集成rabbitmq

    RabbitMQ消息模式之Confirm确认消息

    理解Confirm消息确认机制 消息的确认,是指生产者投递消息后,如果Broker收到消息,则会给我们生产者一个应答。生产者进行接收应答,用来确定这条消息是否正常的发送到Broker,...import com.rabbitmq.client.Queuein

    rabbitMq window10安装包

    rabbitMq window10安装包

    Linux下安装RabbitMQ

    以rabbitmq3.6版本为例

    RabbitMQ使用指南.pdf

    RabbitMQ下载安装配置使用指南官方手册

    RabbitMQ源码和客户端工具

    RabbitMQ源码和客户端工具RabbitMQ源码和客户端工具

Global site tag (gtag.js) - Google Analytics