rabbitMQ-消息队列 -学习备忘

##这里我们对rabbitMq消息队列进行备忘

一、 组件的安装和说明

windows直接下载最近安装包,启动就可以了

参考-亲测:如何在 Centos7 中使用阿里云的yum源
参考-亲测:在CentOS7上安装RabbitMQ
参考-亲测 + 结合上一条:CentOS7安装RabbitMQ - 开启web管理界面、管理用户
参考:docker快速安装rabbitmq

#centos7  开启rabbitmq 开机启动
chkconfig rabbitmq-server on #设置开机启动
service rabbitmq-server start #启动
service rabbitmq-server stop # 停止
service rabbitmq-server restart #重启
service rabbitmq-server status #状态

1. 几点主要说明

端口说明:
一:rabbitMQ有两个端口
1:5672 默认的连接端口
2:15672是web管理控制台端口
账号密码如果忘记的话,只要能登录到服务器都能创建或者重置密码。
二:关于virtualHost说明
有点类似数据库库的概念,不同的virtualHost就是独立的,之间的消息完全隔离。默认是/。其他hostweb需要管理控制台去创建。
  1. 管理界面简单说明rabbitMQ-消息队列 -学习备忘_第1张图片
  2. rabbitMQ-消息队列 -学习备忘_第2张图片

参考1: rabbitmq management Login Failed(windows、linux都可以到服务器通过命令重置)
参考2:创建rabbitmq:virtual host、exchange、queue
参考3:Windows环境下RabbitMQ的启动和停止命令

2. 概念exchanges交换机、queues队列

rabbitMq消息队列,有一个重要的概念。在队列queues基础上增加了一个交换机的概念。
生产者生成的消息必须经过exchange路由之后,路由到指定队列给消费者消费。
因此比较复杂的地方,就是 那个交换机和那个队列进行路由。
路由规则(交换规则)有四种。
因此发送消息,可以指定消息投递到那个交换机(exchange),那个队列(routingKey)。
当然routingkey可以做到很灵活,比如topic# 或者topic*这种灵活的匹配。
  1. Direct:direct 类型的行为是"先匹配, 再投送". 即在绑定时设定一个 routing_key, 消息的routing_key 匹配时, 才会被交换器投送到绑定的队列中去.
  2. Topic:按规则转发消息(最灵活)。

3. Springboot使用mq

rabbitMq使用springboot也比较简单,见参考

参考1【重点】:Springboot 整合RabbitMq ,用心看完这一篇就够了
参考2【备用】:Spring Boot整合RabbitMQ(延迟队列)

4. 如何把mq异步,变成同步

开发中各种奇葩需求,既要使用mq,还要同步获取返回值。
使用redis可能比使用数据库存mq返回值更方便。

参考博客:MQ 队列的异步转同步问题

5.疑难问题解决

启动不了 rabbitmq报错Failed to start RabbitMQ broker

你可能感兴趣的:(linux安装部署)