消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)

前言

最近在学习消息中间件——RabbitMQ,打算把这个学习过程记录下来。此章主要介绍环境搭建。此次主要是单机搭建(条件有限),包括在Windows、Linux环境下的搭建,以及RabbitMQ的监控平台搭建。

环境准备

在搭建RabbitMQ之前,请先确保如下环境已经搭建完毕

  • Java环境(我的JDK1.8)
  • Maven环境(我的3.6.1目前最新版)
  • Git环境

没有搭建的同学走传送门:

JDK环境搭建: JAVA8环境搭建
Maven环境搭建: Windows环境下使用Nexus 3.X 搭建Maven私服及使用介绍
Git环境搭建:Git环境搭建及配置


1.Windows环境下搭建

需要分别下载erlang与RabbitMQ安装包,进行安装。如果有遇到官方网站打不开的情况,可以扫描下方二维码关注公众号:Coder编程 回复RabbitMQ可以获取安装文件。

1.1 下载并安装 erlang

原因:RabbitMQ服务端代码是使用并发式语言Erlang编写的,安装Rabbit MQ的前提是安装Erlang。

  • 下载地址:Downloads - Erlang/OTP

目前最新版本是:22.0

  • 根据电脑位数下载相应版本,现在大部分电脑都是64位,我这边选择64位的进行下载。

1.2 安装及环境配置步骤

1.2.1 安装包

下载完后,会得到如下安装包

消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)转

1.2.2 安装过程
  • 双击安装包,点next就可以

  • 选择一个软件安装保存的位置,然后依次点击next、finish就可以。
1.2.3 配置环境变量

安装完成之后,我们再来配置下环境变量。

电脑–>鼠标右键“属性”–>高级系统设置–>环境变量–>“新建”系统环境变量

变量名:ERLANG_HOME 变量值就是刚才erlang的安装地址,点击确定。然后双击系统变量path

点击“新建”,将%ERLANG_HOME%\bin加入到path中

1.2.4 测试

最后windows键+R键,输入cmd,再输入erl,看到版本号就说明erlang安装成功了。

1.3 下载并安装 RabbitMQ

1.3.1 安装及配置

下载地址:Downloading and Installing RabbitMQ — RabbitMQ

  • 双击下载后的.exe文件,安装过程与erlang的安装过程相同。
  • RabbitMQ安装好后接下来安装RabbitMQ-Plugins。打开命令行cd,输入RabbitMQ的sbin目录。

安装目录:E:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.16

然后在后面输入rabbitmq-plugins enable rabbitmq_management命令进行安装

打开sbin目录,双击rabbitmq-server.bat

1.3.2 测试

输入地址:http://localhost:15672/

显示图形界面及为成功!

1.4 解决闪退问题

输入 rabbitmq-plugins enable rabbitmq_management命令,之后启动 rabbitmq-service.bat 失败

建议:

  • 首先在命令行输入:rabbitmq-service stop
  • 接着输入rabbitmq-service remove
  • 再接着输入rabbitmq-service install
  • 接着输入rabbitmq-service start
  • 最后重新输入rabbitmq-plugins enable rabbitmq_management

2. Linux 环境下搭建

Linux环境安装RabbitMQ有两种安装方式:一种yum安装方式,一种编译安装方式。对于新手,推荐:yum安装方式

以下以yum安装方式进行介绍。

RabbitMQ官网下载地址:RabbitMQ: easy to use, flexible messaging and streaming — RabbitMQ

注意事项
erlang的版本会影响到rabbitmq的安装,两者有个版本对照。查看对照的地址:RabbitMQ Erlang Version Requirements — RabbitMQ

2.1 准备工作

2.1.1 安装好JDK环境。

可以参考以下文章:
linux下jdk的安装(两种方式)-CSDN博客

2.1.2 关闭防火墙

firewall-cmd –permanent –add-port=5672/tcp

firewall-cmd –reload

setsebool -P nis_enabled 1 (关闭selinux)

2.1.3 安装依赖包

rabbitmq所需要的依赖包


yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c++ kernel-devel m4 ncurses-devel tk tc xz

2.2 安装Erlang以及RabbitMQ

2.2.1 下载安装包

wget www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm
wget http://repo.iotti.biz/CentOS/7/x86_64/socat-1.7.3.2-5.el7.lux.x86_64.rpm
wget www.rabbitmq.com/releases/rabbitmq-server/v3.6.5/rabbitmq-server-3.6.5-1.noarch.rpm
2.2.2 安装服务命令
rpm -ivh erlang-18.3-1.el7.centos.x86_64.rpm rpm -ivh socat-1.7.3.2-5.el7.lux.x86_64.rpm
rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm

以上必须按顺序进行安装,否则会报错!

2.2.3 修改配置文件

注意修改: vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.5/ebin/rabbit.app文件

修改:loopback_users 中的 <<“guest”>>,只保留guest

修改:heartbeat 为1

消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)转

2.2.4 启动/停止服务等命令

## 启动rabbitmq服务
/etc/init.d/rabbitmq-server start ## 停止rabbitmq服务
/etc/init.d/rabbitmq-server stop ## 查看rabbitmq服务状态
/etc/init.d/rabbitmq-server status ## 重启rabbitmq服务
/etc/init.d/rabbitmq-server restart## 查看服务有没有启动lsof -i:5672 或者 netstat -tnlp|grep 15672
2.2.5 安装RabbitMQ管理界面

rabbitmq-plugins enable rabbitmq_management

安装完毕后,需要重启服务。

之后就可以通过http://ip:15672

使用guest,guest 进行登陆web页面了。

2.2.6 可能遇到的坑

安装过程中,遇到过以下坑:

消息中间件——RabbitMQ(一)Windows/Linux环境搭建(完整版)转


BOOT FAILED
===========
Error description:{error,{missing_dependencies,[compiler],[mochiweb]}}Log files (may contain more information):/var/log/rabbitmq/rabbit@localhost.log/var/log/rabbitmq/rabbit@localhost-sasl.log
Stack trace:[{rabbit_plugins,ensure_dependencies,1,[{file,"src/rabbit_plugins.erl"},{line,176}]},{rabbit_plugins,prepare_plugins,1,[{file,"src/rabbit_plugins.erl"},{line,195}]},{rabbit,broker_start,0,[{file,"src/rabbit.erl"},{line,280}]},{rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,403}]},{init,start_it,1,[]},{init,start_em,1,[]}]{"init terminating in do_boot",{error,{missing_dependencies,[compiler],[mochiweb]}}}
/usr/lib/rabbitmq/bin/rabbitmq-server: 行 236: 105442 用户定义信号 2    start_rabbitmq_server "$@"

找了半天也没找到解决方案,直接卸载重新再安装一遍就好了,也行中间有操作失误的地方。

2.2.7 卸载RabbitMQ操作

/sbin/service rabbitmq-server stop
yum list | grep rabbitmq
yum -y remove rabbitmq-server.noarchyum list | grep erlang
yum -y remove erlang-*
yum remove erlang.x86_64 
rm -rf /usr/lib64/erlang
rm -rf /var/lib/rabbitmq

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

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

相关文章

机器人的触发条件有什么区别,如何巧妙的使用

简介​ 维格机器人触发条件,分为3个,分别是: 有新表单提交时、有记录满足条件时、有新的记录创建时 。 看似3个,其实是能够满足我们非常多的使用场景。 本篇将先介绍3个条件的触发条件,然后再列举一些复杂的触发条件如何用现有的触发条件来满足 注意: 维格机器人所有的…

【Python第三方包】串口通信(pySerial包)

文章目录 前言一、串口的基本使用1.1 配置串口基本信息1.2 读取串口数据1.3 写串口1.4 关闭串口二、示例代码2.1 示例1: 从串口读取数据2.2 示例2: 向串口写入数据总结前言 串口通信是许多嵌入式和物联网应用中的关键组成部分。Python 提供了许多第三方库来简化串口通信的实现…

Linux(Centos7)防火墙端口操作记录

1、nginx -t #Nginx配置文件检查 上述截图代表检查没问题 上述截图检查配置文件配置错误&#xff0c;并提示错误文件位置 2、systemctl restart nginx #重启Nginx 重启Nginx失败 3、systemctl status nginx.service #查看Nginx服务状态 80端口被占导致服务启动失败 4、n…

MYSQL(索引篇)

一、什么是索引 索引是一种数据结构&#xff0c;它用来帮助MYSQL更高效的获取数据 采用索引可以提高数据检索的效率&#xff0c;降低IO成本 通过索引对数据排序&#xff0c;降低数据排序成本&#xff0c;降低CPU消耗 常见的有&#xff1a;B树索引、B树索引、哈希索引。其中Inno…

leetcode 238. 除自身以外数组的乘积

leetcode 238. 除自身以外数组的乘积 题目说明&#xff0c;不能使用除法&#xff0c;没有思路。 答案一&#xff1a;超时&#xff0c;因为left、right和result一开始没有设置数组大小&#xff0c;存取浪费时间。 class Solution { public:vector<int> productExceptSel…

【Python】 Python之markdown模块

Python之markdown模块 为了编辑和维护方便使用的是MD来编辑(数据库和文档都是MD)&#xff0c;但是实际展示中生成的API中&#xff0c;需要HTML标签来展示&#xff0c;故此这里需要一个能转换的工具来帮忙。 1. 其他库&#xff1a; markdown markdown2 snudown 2. 安装&…

99%网工都会遇到的经典面试问题

①问题:介绍TCP连接的三次握手?追问:为什么TCP需要握手三次? 三次握手: 第一步:A向B发送一个SYN报文表示希望建立连接 第二步:B收到A发过来的数据包后&#xff0c;通过SYN得知这是一个建立连接的请求&#xff0c;于是发送ACK确认&#xff0c;由于TCP的全双工模式&#xff…

除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂…

代码随想录打卡第五十五天|● 300.最长递增子序列 ● 674. 最长连续递增序列 ● 718. 最长重复子数组

300.最长递增子序列 **题目&#xff1a;**给你一个整数数组 nums &#xff0c;找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列&#xff0c;删除&#xff08;或不删除&#xff09;数组中的元素而不改变其余元素的顺序。例如&#xff0c;[3,6,2,7] 是数组 [0…

深度学习| U-Net网络

U-Net网络 基础知识和CNN的关系反卷积ReLU激活函数 U-Net入门U-Net网络结构图为什么需要跳跃连接U-Net的输入U-Net的应用 基础知识 理解U-Net网络结构需要相关知识点。 和CNN的关系 U-Net也是CNN&#xff08;Convolutional Neural Network&#xff0c;卷积神经网络&#xff…

Flutter PopupMenuButton下拉菜单

下拉菜单是移动应用交互中一种常见的交互方式,可以使用下拉列表来展示多个内容标签,实现页面引导的作用。在Flutter开发中,实现下拉弹框主要有两种方式,一种是继承Dialog组件使用自定义布局的方式实现,另一种则是使用官方的PopupMenuButton组件进行实现。 如果没有特殊的…

Android任务栈和启动模式

Andrcid中的任务栈是一种用来存放Activity实倒的容器。任务最大的特点就是先进后出&#xff0c;它主要有两个基本操作&#xff0c;分别是压栈和出栈。通常Andaid应用程序都有一个任务栈&#xff0c;每打开一个Activity时&#xff0c;该Activity就会被压入任务栈。每销毁一个Act…

Unity Animator cpu性能测试

测试案例&#xff1a; 场景中共有4000个物体&#xff0c;挂在40个animtor 上&#xff0c;每个Animator控制100个物体的动画。 使用工具&#xff1a; Unity Profiler. Unity 版本&#xff1a; unity 2019.4.40f1 测试环境&#xff1a; 手机 测试过程&#xff1a; 没有挂…

VNC图形化远程连接Ubuntu服务器

我的Ubuntu版本22.04.3&#xff0c;带有gnome图形桌面。配置过程参考了几篇博客&#xff0c;大致流程如下。因为是配置完之后才整理的流程&#xff0c;可能有疏漏。 Ubuntu服务器上的配置 1.先在服务器上下载vnc server&#xff08;任何一种版本均可&#xff09; vncserver有…

新电脑第一次重启后蓝屏

新电脑第一次重启后蓝屏 悲惨事故&#xff0c;远程参加插电第一次开机&#xff0c;按“FNShiftF10”启动cmd窗口输入oobe\bypassnro 回车重启跳过网络连接&#xff0c;设置一个用户名密码设置为空&#xff0c;不设密码确定&#xff0c;进入系统软件操作磁盘操作&#xff08;磁盘…

Angular-05:管道

① 介绍1.1 基本用法1.2 管道参数1.3 链式管道1.4 纯管道1.5 非纯管道 ② 内置管道③自定义管道 ① 介绍 管道&#xff1a;pipe 。在angular中处理组件模板的数据格式。管道操作符 | &#xff0c;连接模板表达式中左边输入数据和右边的管道。 1.1 基本用法 例&#xff1a;这里…

82.二分查找

目录 什么是二分查找 一、左闭右闭写法[left,right] 代码演示&#xff1a; 二、左闭右开写法[left,right] 代码演示&#xff1a; 今天进行了二分查找的学习。 什么是二分查找 二分查找&#xff08;Binary Search&#xff09;是一种常用的搜索算法&#xff0c;也被称为折…

VS Code2023安装教程(最新最详细教程)附网盘资源

目录 一.简介 二.安装步骤 三.VS Code 使用技巧 网盘资源见文末 一.简介 VS Code是一个由微软开发的跨平台的轻量级集成开发环境&#xff08;IDE&#xff09;&#xff0c;被广泛用于编写各种编程语言的代码。它支持多种编程语言&#xff0c;并且可以通过插件扩展功能。 以…

Undefined reference错误处理及Linux设置动态链接库so的默认搜索路径

文章目录 1 问题的提出2 问题的分析3 问题的解决3.1 Windows的VS修改配置属性3.2 Linux系统里添加搜索路径json在/usr/llib目录中libcryto.so在/usr/lib64文件夹中 Linux设置动态链接库so的默认搜索路径方法一&#xff1a;修改 ld.so.conf 文件方法二&#xff1a;修改环境变量方…

为什么 hooks 不能放在循环或者条件判断语句里?

React 官网介绍了 Hook 的这样一个限制&#xff1a; 不要在循环&#xff0c;条件或嵌套函数中调用 Hook&#xff0c; 确保总是在你的 React 函数的最顶层以及任何 return 之前调用他们。遵守这条规则&#xff0c;你就能确保 Hook 在每一次渲染中都按照同样的顺序被调用。这让 R…