首页 > 其他分享 >RabbitMQ的安装和简单概述

RabbitMQ的安装和简单概述

时间:2022-10-26 17:03:25浏览次数:51  
标签:队列 RabbitMQ 交换机 概述 消息 key 安装 路由

一、安装RabbitMQ

1、概述: RabbitMQ是一个开源的遵循 AMQP协议实现的基于 Erlang语言编写,一般地,需要先安装部署Erlang环境再安装RabbitMQ环境。但在docker中,Erlang环境已经被docker自动安装,我们只需要简单几步操作即可完成RabbitMQ环境地安装+Web页面管理。消息队列是异步处理,降低耦合度,流量削峰。

2、开放端口:请在服务器上开放相应地安全组(端口):15672(页面管理 端口)、5672(client端通信口)25672(server间内部通信口)、61613、1883

#开放指定端口号命令
firewall-cmd --zone=public --add-port=1935/tcp --permanent
命令含义:
--zone #作用域
--add-port=1935/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效

3、先安装docker(移步docker安装教程),然后执行以下命令,docker容器便会自动拉取RabbitMQ镜像并创建容器。

docker run -d --name rabbit -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 rabbitmq:management

安装完成后,输入http://ip:15672/,则可以看到RabbitMQ管理界面:

image-20221026154555827

二、RabbitMQ的五种工作模式

1、消息推送到接收的流程图:

JCccc-RabbitMq

1、简单队列:一个生产者对应一个消费者。

2、work模式:一个生产者对应多个消费者,但是一条消息只能有一个消费者获得消息,轮询分发就是将消息队列中的消息,依次发送给所有消费者。一个消息只能被一个消费者获取。

3、发布/订阅模式(fanoutExchange):一个消费者将消息首先发送到交换机,交换机绑定到多个队列,然后被监听该队列的消费者所接收消费。如果没有队列绑定交换机,则消息丢失。

4、路由模式(DirectExchange):生产者将消息发送到direct交换机,在绑定队列和交换机的时候有一个路由key,生产者发送的消息会指定一个路由key,那么消息只会发送到相应key相同的队列中,接着监听该队列的消费者消费消息。也就是让消费者有选择性的接收消息。

5、主题模式(TopicExchange):路由模式是根据routingkey进行完整的匹配,而这里的通配符模式就是模糊匹配。与路由模式类似,但主题模式是一种模糊的匹配方式。

五种模式可以分为三类:

生产者,消息队列,一个消费者。

生产者,消息队列,多个消费者。

生产者,交换机,多个消息对列,多个消费者。

着中介绍最常用的Fanout交换机和Direct交换机

Fanout Exchange:扇形交换机。

不处理路由键,只需要简单的将队列绑定到交换机上。

发送到交换机的消息都会被转发到该交换机绑定的所有队列上

Fanout交换机转发消息是最快的。

Fanout Exchange交换机可以简单的理解为广播站。

上面几句话,在生活中有个很常见的示例:在大学中,我们知道每天都会有广播站放出美妙的音乐。广播站是面向全校所有师生的,所有它的消息转发的是最快的。

Direct exchange:直连交换机。

定义:根据路由键(routingkey)需要完全匹配上才可以。会把消息路由到那些bingding key与routing key完全匹配的队列中。Rabbit mq默认的路由就是这种。

单个绑定示意图:

img

说明:

我们可以看到有三个routingkey:orange、black、green.如果生产者P发送消息的key是orange(需要完全匹配的)那么将会被路由的Q1这个消费者上。如果发送的是black或者是green的时候,将会被路由到Q2上面。

多个绑定示意图:

img

说明:

将相同的key绑定在不同的队列中。当生产者P发送消息key是black的时候,Q1和Q2都会被接收到

标签:队列,RabbitMQ,交换机,概述,消息,key,安装,路由
From: https://www.cnblogs.com/coolsheep/p/16829023.html

相关文章

  • Linux安装nginx
    1、安装所需环境//安装gccyuminstallgcc-c++//安装PCREpcre-develyuminstall-ypcrepcre-devel//安装zlibyuminstall-yzlibzlib-devel//安装OpenS......
  • 使用war包安装jenkins
    安装javajenkins必须依赖的curl-Ohttps://dshvv-1300009960.cos.ap-beijing.myqcloud.com/shell/ijava11.sh&&chmod755./ijava11.sh&&./ijava11.sh&&rm-rf.......
  • DOM-概述、DOM_Document对象_创建DOM对象、DOM_Node对象
    DOM-概述概念:DocumentObjectModel文档对象模型将标记语言文档的各个组成部分,封装为对象。可以使用这些对象,对标记语言文档进行CRUD的动态操作W3CDOM标准被分......
  • 03.Go语言环境安装——09.变量的初始化
    3.Go语言环境安装Go的下载Go的下载网址选择合适的版本进行下载安装完成,在cmd目录下,输入“goversion”检查版本Go的环境变量设置右击我的电脑——属性——高级系统......
  • VUE CLI2 安装配置less,less-loader。webpack版本5
    先查看自己的webpack版本,我的是5.74。在node_modules/webpack里面查看   我尝试安装过7版本less-loader,没报错,但是当我导入antd的less文件时开始报错,于是卸载后安装......
  • eclipse安装JPA插件并添加JPA支持
    JPA与ORM什么关系ORM是JPA规范中的一个体现思想,JPA规范包含了ORM,Sun公司为了简化现有JavaEE和JavaSE应用的对象持久化的开发工作,整合ORM技术,结束现在Hibernate、iBATIS......
  • Hyper-v 安装openwrt
    安装注意事项:1、只能选一代,网卡可以使用新版2、网卡高级设置,MAC地址欺骗一定要选上,不选外部交换机不能上网。3、防火墙做wan口转发4、防火墙wan口,两个reject改为accept......
  • 华为云切换操作系统使用私有镜像 安装Windows Server 2022
    趁华为云搞活动,买云服务器买一个月送一年(首单),入了一台华为云的云服务器 ps:这个活动买一送一,是二台云服务器,一台一个月和一台一年,而不是一台服务器有13个月的,领取......
  • rabbitmq fanout(广播)模式
    配置信息bbitMQ:host:rabbitmq.comport:0000username:0000password:0000topic:amq.fanoutqueueName:icost-betavirtualHost:icost-beta#......
  • 【Security】AWVS 15.0 CentOS安装后无法扫描解决方案
    目录问题描述排查过程安装GLIBC_2.18划重点问题描述  看见AWVS更新到15.0没忍住就安装了,但是安装完之后发现服务、端口、https页面、引擎看上去都正常,但是当新建目标无......