RabbitMQ 学习笔记01

没有不变的工作,只有不变的能力

RabbitMQ简介:
RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

RabbitMQ的主要特性:
(1)可靠性:RabbitMQ可通过队列持久化,交换机持久化,消息持久化及ACK回应等机制保证可靠性
(2)支持多种语言与协议:RabbitMQ几乎支持所有的编程语言,还支持AMQP,STOMP,MQTT等多种协议
(3)管理界面:RabbitMQ有一个可视化的管理界面可以用来直观的查看RabbitMQ的状态及运行情况,本地安装默认网址为:http://localhost:15672/#/
(4)可灵活的扩展:多个RabbitMQ节点可以组成一个集群,队列可以在集群中的机器上设置镜像,使得在部分节点出现问题的情况下队仍然可用

RabbitMQ的适用场景:
解耦、异步处理、处理日志、流量削峰
基本流程:
在这里插入图片描述
模式1:简单模式 “Hello World!
简单的P(producer)->queue->C(consumer)
在这里插入图片描述
模式2:工作模式(Work单发送多接收)Work queues
一个生产者端,多个消费者端。
在这里插入图片描述
轮询模式—》各消费者所接收的消息数相同,不会受服务器或网速等限制。
公平分发—》根据消费者的消费能力进行公平分发,处理快的处理的多,处理慢的处理的少;按劳分配;
3、发布与订阅模式 Publish/Subscribe
使用场景:发布、订阅模式,生产者端发送消息,多个消费者同时接收所有的消息。
在这里插入图片描述
4、路由模式 Routing
在fanout模式上增添了Routing key进行匹配 可给指定的key进行消息发送在这里插入图片描述
5、主题模式Topics
主题模式 在direct基础上增加了通配符 ‘*’ 与 ‘#’
*:有且至少有一个
#: 可有可无,可多可少
在这里插入图片描述
6、远程过程调用RPC
在这里插入图片描述
RPC工作流程
(1)对于RPC请求,客户端发送一条具有两个属性的消息:一个是为请求创建的匿名排他队列,它被设置 为一个匿名独占队列;另一个是针对每个请求设置为唯一值的corRelationId。
(2)请求被发送到一个新的RPC_Queue队列。
(3)RPC工作人员(又名:server)正在等待该队列上的请求。当一个请求出现时,它会执行这个任务,并将一个带有结果的消息发送回客户端,这将使用来自ReveryTo字段的队列。
(4)客户端等待应答队列中的数据。当消息出现时,它会检查correlationId属性。如果它与请求中的值匹配,它将返回对应用程序的响应。

7、发送确认 Publisher Confirms
实现方式:
1:单条消息发布确认
2、分批发布消息
3、异步处理发布服务器确认
在这里插入图片描述

rabbitmq常用命令
rabbitmq-service install 安装服务
rabbitmq-service start 开始服务
Rabbitmq-service stop 停止服务
Rabbitmq-service enable 使服务有效
Rabbitmq-service disable 使服务无效
rabbitmq-service help 帮助

当rabbitmq-service install之后默认服务是enable的,如果这时设置服务为disable的话,rabbitmq- service start就会报错。
当rabbitmq-service start正常启动服务之后,使用disable是没有效果的

Rabbitmq 管理插件启动,可视化界面
rabbitmq-plugins enable rabbitmq_management 启动
rabbitmq-plugins disable rabbitmq_management 关闭

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值