美文网首页RabbitMq
RabbitMq学习贴

RabbitMq学习贴

作者: MORESIR | 来源:发表于2017-02-16 16:04 被阅读47次

近期阅读了一些网友写的关于RabbitMq的文章,整理下来:

消息队列的初认识:
https://my.oschina.net/u/3229047/blog/839213
http://blog.csdn.net/anzhsoft/article/details/19563091

exchange模式的介绍
http://www.cnblogs.com/zhangweizhong/p/5713874.html

消息队列的持久化分析
http://backend.blog.163.com/blog/static/20229412620132251132788

AMQP协议中的核心思想就是生产者和消费者隔离,生产者从不直接将消息发送给队列。生产者通常不知道是否一个消息会被发送到队列中,只是将消息发送到一个交换机。先由Exchange来接收,然后Exchange按照特定的策略转发到Queue进行存储。同理,消费者也是如此。
RabbitMQ是AMQP的开源实现。

主要涉及的概念:

虚拟主机 virtual host
交换机 exchange
队列 queue
绑定 binding
路由键 routing-key
Connection:就是一个TCP的连接。Producer和Consumer都是通过TCP连接到RabbitMQ Server的。
Channels:虚拟连接。它建立在上述的TCP连接中。数据流动都是在Channel中进行的。也就是说,一般情况是程序起始建立TCP连接,第二步就是建立这个Channel。对于Producer或者Consumer来说,一个TCP连接可以并发的使用多个Channel进行Publish或者Receive。
ack: 确认Message的正确传递

系统架构图版权属于sunjun041640

RabbitMq中有多个虚拟主机,一个虚拟主机有一组交换机,队列和绑定

exchange和queue通过routing-key关联,这两者之间的关系是就是binding。路由键exchange,该交换机收到消息后会把消息发送到指定routing-key的queue中。

有四种类型的Exchanges:

Default Exchange: 这种是特殊的Direct Exchange,是rabbitmq内部默认的一个交换机。如果 routing key 匹配, 那么Message就会被传递到相应的queue中。其实在queue创建时,它会自动的以queue的名字作为routing key来绑定那个exchange。

Direct Exchange

Topic Exchange交换机: 对key进行模式匹配,比如ab可以传递到所有ab的queue。

Topic Exchange

Fanout Exchange交换机: 会向响应的queue广播。

广播方式

header Exchange: 少用

相关文章

网友评论

    本文标题:RabbitMq学习贴

    本文链接:https://www.haomeiwen.com/subject/qgkhwttx.html