RabbitMQ简介及在Linux中安装部署(yum)

news2024/9/21 12:39:37

一、RabbitMQ简介及其作用

RabbitMQ简介

RabbitMQ是在2007 年发布,是一个在 AMQP(高级消息队列协议)基础上完成的,可复用的企业消息系统,是当前最主流的消息中间件之一。RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue 高级消息队列协议 )的开源实现,由于erlang 语言的高并发特性,性能较好,本质是个队列,FIFO 先入先出,里面存放的内容是message。RabbitMQ 是一个消息中间件:它接收消息并且转发,就类似于一个快递站,卖家把快递通过快递站,送到我们的手上,MQ也是这样,接收并存储消息,再转发。

RabbitMQ的主要作用:

  1. 异步处理。把消息放入消息中间件中,等到需要的时候再去处理。
  2. 流量削峰。例如秒杀活动,在短时间内访问量急剧增加,使用消息队列,当消息队列满了就拒绝响应,跳转到错误页面,这样就可以使得系统不会因为超负载而崩溃。
  3. 日志处理
  4. 应用解耦。假设某个服务A需要给许多个服务(B、C、D)发送消息,当某个服务(例如B)不需要发送消息了,服务A需要改代码再次部署;当新加入一个服务(服务E)需要服务A的消息的时候,也需要改代码重新部署;另外服务A也要考虑其他服务挂掉,没有收到消息怎么办?要不要重新发送呢?是不是很麻烦,使用MQ发布订阅模式,服务A只生产消息发送到MQ,B、C、D从MQ中读取消息,需要A的消息就订阅,不需要了就取消订阅,服务A不再操心其他的事情,使用这种方式可以降低服务或者系统之间的耦合。

二、使用yum安装部署的步骤

1.环境配置:

echo "export LC_ALL=en_US.UTF-8"  >>  /etc/profile

curl -s https://packagecloud.io/install/repositories/rabbitmq/rabbitmq-server/script.rpm.sh | sudo bash


curl -s https://packagecloud.io/install/repositories/rabbitmq/erlang/script.rpm.sh | sudo bash

2.安装RabbitMQ(记得输入: y)

sudo yum install rabbitmq-server-3.8.2-1.el7.noarch

3.启动RabbitMQ

systemctl start rabbitmq-server

4.添加admin用户(Username: admin   Password: password)

rabbitmqctl add_user admin password

rabbitmqctl set_user_tags admin administrator

5.开放端口号15672,并且登录

rabbitmq:3.8版本开始,管理插件包含在RabbitMQ发行版中。与其他任何插件一样,必须先启用它,然后才能使用它。这是使用rabbitmq-plugins完成的:执行此命令即可:

rabbitmq-plugins enable rabbitmq_management
firewall-cmd --zone=public --add-port=15672/tcp --permanent 

firewall-cmd --reload 

firewall-cmd --zone=public --list-ports

浏览器访问ip: 15672,用admin,密码password即可登录

 三、RabbitMQ相关的基础命令

1.开启web管理界面

rabbitmq-plugins enable rabbitmq_management

2.停止RabbitMQ

rabbitmqctl stop

3.设置开机启动

systemctl enable rabbitmq-server

4.启动RabbitMQ

systemctl start rabbitmq-server

5.看看端口有没有起来,查看状态

rabbitmqctl status

6.要检查RabbitMQ服务器的状态,请运行:

systemctl status rabbitmq-server

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/13090.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Arcpy入门教程01:从零开始制作一个arcpy脚本

从零开始制作一个arcpy脚本 文章目录 需求分析代码实现构造临时工作目录数据处理过程及API解析脚本打包代码封装在红盒子中创建脚本报错提醒 EOL while scanning string literal完整代码需求分析 我们现在有一个GDB存储这西安市各个区的绿地面的GDB,以及碑林区和新城区的行政…

将时间序列转成图像——相对位置矩阵方法 Matlab实现

目录 1 方法 2 Matlab代码实现 3.结果 【若觉文章质量良好且有用,请别忘了点赞收藏加关注,这将是我继续分享的动力,万分感谢!】 其他: 1.时间序列转二维图像方法及其应用研究综述_vm-1215的博客-CSDN博客 2.将时…

Nginx实现负载均衡

目录 一、环境准备 1、准备3台centos服务器 2、软件安装 二、负载均衡配置 三、其他分配策略 1、fair(第三方) 一、环境准备 1、准备3台centos服务器​​​​​​​ 服务器名称主机名IP安装服务备注Nginx反向代理服务器proxy192.168.1.10nginx关…

ES倒排序索引

前言 在学习Elasticsearch的使用前,我们先来了解下es是如何实现全文搜索的。 倒排索引是 Elasticsearch 中非常 重要的索引结构,从 文档单词到文档 ID 的过程 为什么要使用倒排索引 先看下面的商品数据goods id 标题 描述 1 小米手机 小米手机性…

【保姆级】新机器部署Redis

1、登录服务器,如果非root用户则切root用户 sudo su - 2、安装gcc yum install gcc-c 3、在/usr/tmp目录上传redis安装包 4、将安装包移到/opt/byd目录 mv redis-4.0.11.tar.gz /opt/byd 5、解压 & 重命名 tar -xzvf redis-4.0.11.tar.gz mv redis-4.0.11 …

安全狗受邀出席CIS 2022网络安全创新大会

11月16日,由网络安全行业门户Freebuf主办的CIS 2022网络安全创新大会(简称CIS)在上海主会场顺利开幕。 作为国内云原生安全领导厂商,安全狗也收到邀请出席此次活动。 据悉,此次大会分为上海、北京、深圳等多个会场&am…

Pytorch中的DDP

一. 概览 DDP的原理? 在分类上,DDP属于Data Parallel。简单来讲,就是通过提高batch size来增加并行度。为什么快? DDP通过Ring-Reduce的数据交换方法提高了通讯效率,并通过启动多个进程的方式减轻Python GIL的限制&am…

2022-11-17 mysql列存储引擎-聚合运算中间结果缓存磁盘文件以避免OOM-需求分析

摘要: mysql列存储引擎-聚合运算中间结果缓存磁盘文件以避免OOM-需求分析 关联ISSUE: https://github.com/stoneatom/stonedb/issues/21 需求分析ISSUE: https://github.com/stoneatom/stonedb/issues/949 上下文说明: 当前聚合运算的结果都缓存在了内存的HASH中, 一旦数据量…

数据库等值查询与统计信息

概念 统计信息是为优化器的 cost 估算提供数据支撑,其中很重要的一点需求便是等值查询(EQUALS, IN 等) 场景下的基数估算。考虑以下 Case CREATE TABLE mc_tac_template (ID BIGINT ,NAME varchar(50) NOT NULL,GENDER varchar(10) NOT NULL,PRIMARY KEY (ID),KEY K…

工业设计公司的办公环境有哪些特点?

设计公司的办公环境一直被称之为个性化的意味着,见惯了新科技公司的各类智能化豪情万丈的办公环境,也有别于正儿八经办公楼的循规蹈矩,每个设计公司的公司办公室总似一股清流一般的存在,自然各种设计公司,如平面、工业…

Flutter 在项目中使用动画(不使用包)

Flutter 在项目中使用动画(不使用包) 前言 动画对于 web 和移动应用程序都非常重要。但是在移动应用程序中不应该使用夸张的动画。简单但是很多动画使你的应用程序更好用。以至于当你点击一个按钮时,一种平滑的感觉或者页面过渡都会影响到你。 正文 1 按下按钮柔软的…

UNIAPP实战项目笔记39 我的页面布局

UNIAPP实战项目笔记39 我的页面布局 my.vue 我的页面布局 具体图片自己替换哈,随便找了个图片的做示例 代码 pages.json部分 去掉默认导航栏,改为自定义导航栏 ,{"path" : "pages/my/my","style" : …

408 | 【数据结构】 排序 —— 总复习框架总结

(一)排序的基本概念 排序算法的稳定性:经过排序后,能使关键字相同的元素保持原顺序中的相对位置不变。 (二)内部排序 2.1、插入排序 算法思想:每次将一个待排序的记录按其关键字大小插入到前面已排好序的子序列中,直到全部记录插入完成。 2.1.1、直接插入排序 顺…

通过Xamarin实现东大集成PDA的扫码

目录1、东大集成PDA的扫码说明2、Xamarin通过广播实现扫码2.1 PDA的扫码工具设置2.2 代码实现2.2.1 主界面2.2.1 定义广播接收器2.2.2 在活动页面实现读取2.3 实现效果3、demo下载1、东大集成PDA的扫码说明 东大集成的PDA有两种方式实现设备自带的扫码功能。一种为调用硬件接口…

终极大招~pycharm自动补全opencv代码提示功能

你的pycharm还能自动补全opencv代码提示吗? 你可能通过修改cv2,进入__init__.py文件,一顿操作,还是不行。 你以为是工具问题,卸载重装? 还是opencv卸载重装好几次了 这次分享下我的方案,保证你一看就会。…

人工智能数学基础--概率与统计10:离散随机变量的概率函数及常见的二项分布、泊松分布

一、离散随机变量的概率函数及分布函数 设X为离散随机变量,其全部可能取值为{a1,a2,…},则:piP(Xai) &nsp&nsp&nsp&nsp (i1,2,…)称为X的概率函数,也称为随机变量X的概率分布; 设X为随机变量&#xf…

【lombok】equals相等返回false contains包含返回false? lombok注解的一个天坑

最近在写代码的时候 遇到个奇怪的问题 使用 list.contains(obj) 方法判断&#xff0c;明明是两个内容一样的对象&#xff0c;却返回了false 这里用伪代码还原一下场景&#xff1a; // 从数据库取的所有数据 List<SysMenuDTO> allList getDataFromDB(); // 一个id等于1…

【Detectron2】代码库学习-3. LazyConfig 配置文件

目录1. 配置文件2. LazyConfig 导入导出3. 递归实例化4. 基于LazyConfig的训练步骤4.1 导入依赖库4.2 日志初始化4.3 训练4.4 评估4.5 训练流程4.6 主函数入口5. TipsDetectron2是Facebook AI Research(FAIR)推出的基于Pytorch的视觉算法开源框架&#xff0c;主要聚焦于目标检测…

进程的通信 - 邮槽

邮槽 邮槽是Windows系统提供的一种单向进程间的通信机制。对于相对简短的地坪率信息发送&#xff0c;使用邮槽通常比命名管道或者Unix域套接字更简单 使用邮槽通信的进程分为服务端和客户端。邮槽由服务端创建&#xff0c;在创建时需要指定邮槽名&#xff0c;创建后服务端得…

PIC单片机-测试例程汇总

内容包括PIC单片机常用外设的测试例程。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易&#xff01;目录&#xff1a;一、端口的定义与while(1)的使用二、延时1、通过语句延时程序&#xff08;带参数&#xff09; 2、通过语句延时程序&…