RabbitMQ简介

消息中间件rabbitMq

1.通过高并发事故重现了解如何应对高并发业务
2.了解rabbitMq
3.学会使用rabbitMq实现流量削峰

RabbitMQ是一个由erlang语言开发的AMQP的开源实现。RabbitMQ最初起源于金融系统(金融系统特点就是数据可靠性),用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗

1552529563(1).jpg
使用消息队列的目的:

异步处理、流量削峰缓冲、应用解耦、日志、消息通讯

RabbitMQ中的几个重要概念:

Message:消息,消息头和消息体组成
Publisher:消息生产者,也是一个向交换器发布消息的客户端应用程序
Exchange:交换机,用来接收生产者发送的消息并将这些消息路由给服务器中的队列
Binding:绑定,用于消息队列和交换器之间的关联
Queue:消息队列
Connection:网络连接
Channel:信道
Consumer:消息的消费者
Virtual Host:虚拟主机,默认/

RabbitMQ中的Exchange类型:

1、默认交换机(default exchange)实际上是一个由消息代理预先声明好的没有名字(名字为空字符串)的直连交换机(direct exchange)。它有一个特殊的属性使得它对于简单应用特别有用处:那就是每个新建队列(queue)都会自动绑定到默认交换机上,绑定的路由键(routing key)名称与队列名称相同。
默认交换机的本质就是名称为空的直连交换机
2、Direct exchange(直连交换机),(Empty string) and amq.direct直连型交换机(direct exchange)是根据消息携带的路由键(routing key)将消息投递给对应队列的。直连交换机用来处理消息的单播路由(unicast routing)(尽管它也可以处理多播路由)下边介绍它是如何工作的:将一个队列绑定到某个交换机上,同时赋予该绑定一个路由键(routing key)当一个携带着路由键为R的消息被发送给直连交换机时,交换机会把它路由给绑定值同样为R的队列。
3、Fanout exchange(扇型交换机),amq.fanout扇型交换机(funout exchange)将消息路由给绑定到它身上的所有队列,而不理会绑定的路由键。如果N个队列绑定到某个扇型交换机上,当有消息发送给此扇型交换机时,交换机会将消息的拷贝分别发送给这所有的N个队列。扇型用来交换机处理消息的广播路由(broadcast routing)。
4、Topic exchange(主题交换机),amq.topic主题交换机(topic exchanges)通过对消息的路由键和队列到交换机的绑定模式之间的匹配,将消息路由给一个或多个队列。主题交换机经常用来实现各种分发/订阅模式及其变种。主题交换机通常用来实现消息的多播路由(multicast routing)。
5、Headers exchange(头交换机),amq.match (and amq.headers in RabbitMQ)有时消息的路由操作会涉及到多个属性,此时使用消息头就比用路由键更容易表达,头交换机(headers exchange)就是为此而生的。头交换机使用多个消息属性来代替路由键建立路由规则。通过判断消息头的值能否与指定的绑定相匹配来确立路由规则。

你可能感兴趣的:(RabbitMQ简介)