RabbitMQ

1、RabbitMQ

MQ为Message Queue,消息队列是应用程序和应用程序之间的通信方法。

RabbitMQ是使用Erlang语言开发的一个开源的,在AMQP基础上完整的,可复用的企业消息系统。

AMQP即Advanced Message Queuing Protocol,提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。

2、AMQP核心

模型:

Server:又称Broker,接受客户端的连接,实现AMQP实体服务。

Connection:连接,应用程序与Broker的网络连接。

Channel:网络信道,几乎所有的操作都在Channel中进行,Channel是进行消息读写的通道。客户端可以建立多个Channel代表一个会话任务。

Message:消息,服务器和应用程序之间传送的数据,由Properties和Body组成。Properties可以对消息进行修饰,比如消息的优先级、延迟等高级特性;Body就是消息体的内容。

Virtual host:虚拟地址,用于逻辑隔离,最上层的消息路由。一个Virtual Host里面可以有若干个Exchange和Queue,同一个Virtual Host里面不能有相同名称的Exchange或Queue。

Exchange:交换机,接受消息,根据路由键转发消息到绑定的队列。

Binding:Exchange和Queue之间的虚拟连接,binding中可以包含routing key

Routing key:一个路由规则,虚拟机可用它来确定如何路由一个特定的消息。

Queue:称为Message Queue消息队列,保存消息并将他们转发给消费者。

3、RabbitMQ安装

https://www.cnblogs.com/kgdxpr/p/6531061.html  参考这篇文章(Centos6.8)

修改配置文件:
vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app
比如修改密码、配置等等,例如:loopback_users 中的 <<"guest">>,只保留guest


服务启动和停止:
启动 rabbitmq-server start &


停止 rabbitmqctl app_stop

管理插件:rabbitmq-plugins enable rabbitmq_management


访问地址:http://ip地址:15672/

4、demo演示

5、Exchange 交换机

Name:交换机名称

Type:交换机类型 direct topic fanout headers

Durability:是否需要持久化,true为持久化

Auto Delete:当最后一个绑定到Exchange上的队列删除后,自动删除该Exchange

Internal:当前Exchange是否用于RabbitMQ内部使用,默认为false

Arguments:扩展参数,用于扩展AMQP协议自制定化使用

 

Direct Exchange

所有发送到Direct Exchange的消息被转发到RouteKey中指定的Queue

注意:Direct 模式可以使用RabbitMQ自带的Exchange:defult Exchange,所以不需要将Exchange进行任何绑定操作,消息传递时,RouteKey必须完全匹配才会被队列接受,否则该消息会被抛弃。

生产者:

消费者:

6、Topic Exchange

所有发送到TopicExchange的消息被转发到所有关心RouteKey中指定Topic的Queue上

Exchange将RouteKey和某Topic进行模糊匹配,此时队列需要绑定一个Topic

生产者:

消费者:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值