RabbitMQ 安装保姆级教程

目录

1.MQ引言

1.1 什么是MQ

1.2 MQ有哪些

1.3 不同MQ特点

2.RabbitMQ 的引言

2.1 RabbitMQ

2.2 RabbitMQ 的安装

2.2.1 下载

2.2.2 下载的安装包

2.2.3 安装步骤

3. RabiitMQ 配置

3.1RabbitMQ 管理命令行

3.2 web管理界面介绍

3.2.1 overview概览

3.2.2 Admin用户和虚拟主机管理

1. 添加用户

2. 创建虚拟主机

3. 绑定虚拟主机和用户


1.MQ引言

1.1 什么是MQ

  MQ(Message Quene) : 翻译为 消息队列,通过典型的 生产者消费者模型,生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,轻松的实现系统间解耦。别名为 消息中间件 通过利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。

1.2 MQ有哪些

  当今市面上有很多主流的消息中间件,如老牌的ActiveMQRabbitMQ,炙手可热的Kafka,阿里巴巴自主开发RocketMQ等。

1.3 不同MQ特点

# 1.ActiveMQActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。它是一个完全支持JMS规范的的消息中间件。丰富的API,多种集群架构模式让ActiveMQ在业界成为老牌的消息中间件,在中小型企业颇受欢迎!
​
# 2.KafkaKafka是LinkedIn开源的分布式发布-订阅消息系统,目前归属于Apache顶级项目。Kafka主要特点是基于Pull的模式来处理消息消费,追求高吞吐量,一开始的目的就是用于日志收集和传输。0.8版本开始支持复制,不支持事务,对消息的重复、丢失、错误没有严格要求,适合产生大量数据的互联网服务的数据收集业务。
​
# 3.RocketMQRocketMQ是阿里开源的消息中间件,它是纯Java开发,具有高吞吐量、高可用性、适合大规模分布式系统应用的特点。RocketMQ思路起源于Kafka,但并不是Kafka的一个Copy,它对消息的可靠传输及事务性做了优化,目前在阿里集团被广泛应用于交易、充值、流计算、消息推送、日志流式处理、binglog分发等场景。
​
# 4.RabbitMQRabbitMQ是使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。AMQP协议更多用在企业系统内对数据一致性、稳定性和可靠性要求很高的场景,对性能和吞吐量的要求还在其次。

RabbitMQ比Kafka可靠,Kafka更适合IO高吞吐的处理,一般应用在大数据日志处理或对实时性(少量延迟),可靠性(少量丢数据)要求稍低的场景使用,比如ELK日志收集。


2.RabbitMQ 的引言

2.1 RabbitMQ

基于AMQP协议,erlang语言开发,是部署最广泛的开源消息中间件,是最受欢迎的开源消息中间件之一。

官网: RabbitMQ: One broker to queue them all | RabbitMQ

官方教程: RabbitMQ: One broker to queue them all | RabbitMQ

 # AMQP 协议AMQP(advanced message queuing protocol)`在2003年时被提出,最早用于解决金融领不同平台之间的消息传递交互问题。顾名思义,AMQP是一种协议,更准确的说是一种binary wire-level protocol(链接协议)。这是其和JMS的本质差别,AMQP不从API层进行限定,而是直接定义网络交换的数据格式。这使得实现了AMQP的provider天然性就是跨平台的。以下是AMQP协议模型:

2.2 RabbitMQ 的安装

2.2.1 下载

官网下载地址: Installing RabbitMQ | RabbitMQ

2.2.2 下载的安装包

注意:这里的安装包是centos7安装的包

2.2.3 安装步骤
# 1.将rabbitmq安装包上传到linux系统中erlang-22.0.7-1.el7.x86_64.rpmrabbitmq-server-3.7.18-1.el7.noarch.rpm
​
# 2.安装Erlang依赖包rpm -ivh erlang-22.0.7-1.el7.x86_64.rpm
​
# 3.安装RabbitMQ安装包(需要联网)yum install -y rabbitmq-server-3.7.18-1.el7.noarch.rpm注意:默认安装完成后配置文件模板在:/usr/share/doc/rabbitmq-server-3.7.18/rabbitmq.config.example目录中,需要   将配置文件复制到/etc/rabbitmq/目录中,并修改名称为rabbitmq.config
# 4.复制配置文件cp /usr/share/doc/rabbitmq-server-3.7.18/rabbitmq.config.example /etc/rabbitmq/rabbitmq.config
​
# 5.查看配置文件位置ls /etc/rabbitmq/rabbitmq.config
​
# 6.修改配置文件(参见下图:)vim /etc/rabbitmq/rabbitmq.config 

将上图中配置文件中红色部分去掉%%,以及最后的,逗号 修改为下图:

# 7.执行如下命令,启动rabbitmq中的插件管理rabbitmq-plugins enable rabbitmq_management出现如下说明:Enabling plugins on node rabbit@localhost:rabbitmq_managementThe following plugins have been configured:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatchApplying plugin configuration to rabbit@localhost...The following plugins have been enabled:rabbitmq_managementrabbitmq_management_agentrabbitmq_web_dispatch
​set 3 plugins.Offline change; changes will take effect at broker restart.
​
# 8.启动RabbitMQ的服务systemctl start rabbitmq-serversystemctl restart rabbitmq-serversystemctl stop rabbitmq-server​
# 9.查看服务状态(见下图:)systemctl status rabbitmq-server● rabbitmq-server.service - RabbitMQ brokerLoaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)Active: active (running) since 三 2019-09-25 22:26:35 CST; 7s agoMain PID: 2904 (beam.smp)Status: "Initialized"CGroup: /system.slice/rabbitmq-server.service├─2904 /usr/lib64/erlang/erts-10.4.4/bin/beam.smp -W w -A 64 -MBas ageffcbf -MHas ageffcbf -MBlmbcs...├─3220 erl_child_setup 32768├─3243 inet_gethost 4└─3244 inet_gethost 4.........

# 10.关闭防火墙服务systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.systemctl stop firewalld   
​
# 11.访问web管理界面http://10.15.0.8:15672/

# 12.登录管理界面username:  guestpassword:  guest


3. RabiitMQ 配置

3.1RabbitMQ 管理命令行

# 1.服务启动相关systemctl start|restart|stop|status rabbitmq-server
​
# 2.管理命令行  用来在不使用web管理界面情况下命令操作RabbitMQrabbitmqctl  help  可以查看更多命令
​
# 3.插件管理命令行rabbitmq-plugins enable|list|disable 

3.2 web管理界面介绍

3.2.1 overview概览

  • connections:无论生产者还是消费者,都需要与RabbitMQ建立连接后才可以完成消息的生产和消费,在这里可以查看连接情况

  • channels:通道,建立连接后,会形成通道,消息的投递获取依赖通道。

  • Exchanges:交换机,用来实现消息的路由

  • Queues:队列,即消息队列,消息存放在队列中,等待消费,消费后被移除队列。

3.2.2 Admin用户和虚拟主机管理
1. 添加用户

上面的Tags选项,其实是指定用户的角色,可选的有以下几个:

  • 超级管理员(administrator)

    可登陆管理控制台,可查看所有的信息,并且可以对用户,策略(policy)进行操作。

  • 监控者(monitoring)

    可登陆管理控制台,同时可以查看rabbitmq节点的相关信息(进程数,内存使用情况,磁盘使用情况等)

  • 策略制定者(policymaker)

    可登陆管理控制台, 同时可以对policy进行管理。但无法查看节点的相关信息(上图红框标识的部分)。

  • 普通管理者(management)

    仅可登陆管理控制台,无法看到节点信息,也无法对策略进行管理。

  • 其他

    无法登陆管理控制台,通常就是普通的生产者和消费者。

2. 创建虚拟主机
# 虚拟主机为了让各个用户可以互不干扰的工作,RabbitMQ添加了虚拟主机(Virtual Hosts)的概念。其实就是一个独立的访问路径,不同用户使用不同路径,各自有自己的队列、交换机,互相不会影响。

3. 绑定虚拟主机和用户

创建好虚拟主机,我们还要给用户添加访问权限:

点击添加好的虚拟主机:

进入虚拟机设置界面:

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

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

相关文章

代码随想录算法训练营第三十四天|1005. K次取反后最大化的数组和,135,分发糖果

1005. K 次取反后最大化的数组和 题目 给你一个整数数组 nums 和一个整数 k ,按以下方法修改该数组: 选择某个下标 i 并将 nums[i] 替换为 -nums[i] 。 重复这个过程恰好 k 次。可以多次选择同一个下标 i 。 以这种方式修改数组后,返回数…

没有学过PMP,可以直接考npdp产品经理认证吗?

没有学过PMP,可以直接考npdp。PMP教的是如何做一个项目,NPDP教的是如何做一个产品。 而在一个产品开发过程中,PMP知识体系讲述的是如何给出一个“产品”,NPDP知识体系讲述的是产品开始到结束的过程。虽然产品的生命周期比项目的生…

机器学习-05-回归算法

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中回归算法,包括线性回归,岭回归,逻辑回归等部分。 参考 fit_transform,fit,transform区别和作用详解!!!!!&am…

基于springboot+vue的毕业就业信息管理系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

4G/5G视频记录仪_联发科MTK6765平台智能记录仪方案

视频记录仪主板采用了联发科MT6765芯片,该芯片采用12nm FinFET制程工艺,8*Cortex-A53架构,搭载安卓11.0/13.0系统,主频最高达2.3GHz,待机功耗可低至5ma,并具有快速数据传输能力。配备了2.4英寸高清触摸显示…

成为创作者的第 730 天——创作纪念日

​​ 文章目录 📨 官方致信🎯我的第一篇文章🧩 机缘与成长 🎯 成就🎯 目标 📨 官方致信 今天早上打开 CSDN 私信一看,看到了这一条消息,然后看了下日期。突然感慨到,是…

个人信息-求职[web前端]

我有近近10年开发及6年的管理经验Web前端,所负责的技术团队经历了 Web 前端几代技术变革,参与了几乎,在性能优化、开发效率、所有前端相关项目工程化架构选型上都有丰厚的产出。在上家致力于数据安全前端的相关工作,专注于Vue.js技术栈来推进…

jmeter接口导入方式

curl直接导入 1、操作页面后,F12查看接口,右击接口-copy-copy as cURL 2、jmeter 工具-import from cURL,粘贴上面复制的curl 根据接口文档导入 1、接口文档示例如下: Path: /api/jobs/xps/exec Method&#xf…

私人健身与教练预约管理系统设计与实现|SpringBoot+ Mysql+Java+ B/S结构(可运行源码+数据库+设计文档)

本项目包含可运行源码数据库LW,文末可获取本项目的所有资料。 推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,…

kubernetes最小调度单元Pod概述

Pod概述 一.Pod的概念1.Pod是什么2.Pod网络共享实现方式3.Pod存储共享方式4.创建Pod的流程 二.使用YAML文件定义Pod资源1.Pod资源清单YAML文件书写技巧1.YAML语法格式:2.配置Linux tab缩进两个空格3.使用kubectl explain帮助命令 2.创建Pod及Pod常用命令1.创建Pod资…

js中多重引号会导致函数的参数失效报错-Invalid or unexpected token

在js使用中我们经常会使动态添加html信息到元素对象中,且还加入了函数及其,函数对应参数,这个时候就会使用多重引号去拼接,如果拼接中没有做引号的转义,就会出现Invalid or unexpected token。 例如以下代码&#xff0…

利器 | 测试必会之 Linux 三剑客 ( grep / awk / sed )

Linux 给人的印象是黑乎乎的神秘窗口,文本操作和数据处理似乎没有 Windows 窗口界面直观方便。其实Linux 有自己的独特的法宝,称之为三剑客:grep,awk 和 sed。你可以用这三件法宝很方便的处理数据 :查找,分…

【中间件】docker数据卷

📝个人主页:五敷有你 🔥系列专栏:中间件 ⛺️稳中求进,晒太阳 1.数据卷(容器数据管理) 修改nginx的html页面时,需要进入nginx内部。并且因为内部没有编辑器,修改…

Redis - 高并发场景下的Redis最佳实践_翻过6座大山

文章目录 概述6座大山之_缓存雪崩 (缓存全部失效)缓存雪崩的两种常见场景如何应对缓存雪崩? 6座大山之_缓存穿透(查询不存在的 key)缓存穿透的原因解决方案1. 数据校验2. 缓存空值3. 频控4. 使用布隆过滤器 6座大山之_…

Java项目:73 ssm档案管理系统

作者主页:源码空间codegym 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 项目介绍 角色:管理员、用户 用户点击进入到系统操作界面,可以对个人中心、警察信息管理、事故信息管理、申诉信息管理等功能模…

基于java+springboot+vue实现的医院门诊信息管理系统(文末源码+Lw+ppt)23-325

摘 要 系统根据现有的管理模块进行开发和扩展,采用面向对象的开发的思想和结构化的开发方法对医院门诊信息的现状进行系统调查。采用结构化的分析设计,该方法要求结合一定的图表,在模块化的基础上进行系统的开发工作。在设计中采用“自下而…

微服务高级篇(四):多级缓存:Nginx本地缓存 --- Redis缓存 --- 进程缓存

文章目录 一、多级缓存概念二、准备工作【导入案例,并搭建Nginx反向代理】2.1 导入商品案例2.1.1 安装MySQL2.1.2 导入SQL2.1.3 导入Demo工程2.1.4 启动2.1.5 导入商品查询页面 三、JVM进程缓存【第三级缓存】3.1 本地进程缓存与分布式缓存的区别3.2 本地进程缓存&a…

DC-4靶机

一.环境搭建 1.下载地址 靶场下载地址:https://download.vulnhub.com/dc/DC-4.zip 下载不下来用迅雷下载 2.虚拟机配置 切换为nat模式 开启靶机,遇到所有的错误直接点重试或者是,开启后呈现为下图即可 二.开始渗透 1.信息收集 老规矩,…

【排序算法】插入排序与选择排序详解

文章目录 📝选择排序是什么?🌠选择排序思路🌉 直接选择排序🌠选择排序优化🌠优化方法🌉排序优化后问题 🌠选择排序效率特性 🌉插入排序🌠插入排序实现 &#…

简单了解单例模式

什么是单例模式 对于一个类,只有一个实例化的对象,我们构建单例模式一般有两种:饿汉式和懒汉式 饿汉式 优点是无线程安全问题,类加载就创建对象缺点是占内存 class Singleton01{private static Singleton01 instance new Sing…