-
目 录1 介绍... 12 环境要求... 53 配置编译环境... 64 获取源码... 75 编译和安装... 85.1 安装erlang(可以有多种方法,下面写的是2种)... 85.1.1 下载源码安装指定的erlang版本... 85.1.2 yum install –y erlang(安装yum源里的最新erlang版本)... 95.2 安装rabbitMQ.. 96 运行和验证... 116.1 启动服务... 116.2 查看rabbitmq状态... 137 卸载rabbitmq和erlang. 158 常见问题解决... 168.1 安装了erlang和rabbitmq,在安装管理插件rabbitmq-plugins enable rabbitmq_management时报错error:noproc 168.2 安装erlang21.3然后安装rabbitmq3.6.15之后,启动rabbitmq报错。Error:unable to connect node xx@xx:nodedown 168.3 启动rabbitmq报错,提示 Failed to start RabbitMQ broker. 17A 修订记录... 19 1 介绍简要介绍RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而聚类和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。1、简单模式(一对一的发送 ①生产者发送消息给交换机②交换机接收消息,如果交换机没有绑定队列,消息扔进垃圾桶③队列接收消息,存储在内存,等待消费者连接监听获取消息,消费成功后,返回确认一些场景:短信,QQ2、工作模式(资源的争 ①生产者将消息发送给交换机②交换机发送给绑定的后端队列③一个队列被多个消费者同时监听,形成消息的争抢结构:根据消费者所在的系统的空闲、性能争抢队列中的消息一些场景:抢红包3发布订阅(交换机类型为fanout 注:图中未画消费者①交换机定义类型为:fanout②交换机绑定多个队列③生产者将消息发送给交换机,交换机复制同步消息到后端所有的队列中一些场景:邮件群发4、路由模式(交换机类型:direct) ①交换机定义类型为:direct②交换机绑定多个队列,队列绑定交换机时,给交换机提供了一个routingkey(路由key)③发布订阅时,所有fanout类型的交换机绑定后端队列用的路由key都是“”;在路由模式中需要绑定队列时提供当前队列的具体路由key一些场景:错误消息的接收和提示5、主题模式(交换机类型:topic) ①交换机定义类型为:topic②交换机绑定多个队列,与路由模式非常相似,做到按类划分消息③路由key队列绑定的通配符如下:#表示任意字符串,*表示没有特殊符号(单词)的字符串 建议的版本建议使用官网推荐的版本。注意,rabbitMQ跟erlang是有版本配套关系的,选择版本一定要配套版本,否则会安装报错。版本配套关系查询:https://www.rabbitmq.com/which-erlang.html?tdsourcetag=s_pctim_aiomsg 2 环境要求硬件要求只做编译安装,对环境没有太高要求。硬件要求如表2-1所示。表2-1 硬件要求项目说明CPUKunpeng 920网络Ethernet-10GE数量1台 操作系统要求操作系统要求如下所示。表2-2 操作系统要求项目版本下载地址CentOS7.6https://www.centos.org/download/Kernel4.14.0(默认内核即可)包含在操作系统镜像中。gcc4.8.5默认版本即可其他要求 3 配置编译环境直接yum安装依赖包即可。yum install libtool libtool-ltdl-devel libevent-devel lua ncurses-devel openssl-devel flex----结束 4 获取源码组件源码地址Erlang23.0http://erlang.org/download/otp_src_23.0.tar.gzrabbitMQ3.8.5https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-generic-unix-3.8.5.tar.xz ----结束 5 编译和安装Rabbitmq是Erlang语言编写,必须要先安装Erlang环境。先安装erlang之后再安装rabbitmq。5.1 安装erlang(可以有多种方法,下面写的是2种)5.1.1 下载源码安装指定的erlang版本步骤1 下载源码#wget http://erlang.org/download/otp_src_23.0.tar.gz步骤2 解压安装包。#tar -zxvf otp_src_23.0.tar.gz步骤3 进入安装目录。#cd otp_src_23.0步骤4 生成makefile#./configure步骤5 编译安装#make#make install步骤6 测试erlang环境:#erl输入“1+1.”回车显示如下,说明安装成功步骤7 退出该界面:halt().----结束5.1.2 yum install –y erlang(安装yum源里的最新erlang版本) 配置了yum源,可以直接yum install erlang5.2 安装rabbitMQ步骤1 下载源码#wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.5/rabbitmq-server-generic-unix-3.8.5.tar.xz步骤2 解压软件包。#xz -d rabbitmq-server-generic-unix-3.8.5.tar.xz#tar xvf rabbitmq-server-generic-unix-3.8.5.tar步骤3 移动目录到/usr/local底下。#mv rabbitmq_server-3.8.5 /usr/local/rabbitmq步骤4 编辑/etc/profile文件#vim /etc/profile在文件最后写入环境变量export PATH=$PATH:/usr/local/rabbitmq/sbin //根据实际的安装路径修改然后ESC键,按:wq!保存并退出步骤5 使环境变量生效#source /etc/profile ----结束 6 运行和验证6.1 启动服务启动rabbitmq,-detached代表后台守护进程方式启动。#rabbitmq-server或者#rabbitmq-server -detached #rabbitmq-plugins enable rabbitmq_management //设置允许WEB访问Web默认端口是15672,默认账号密码是guest/guest,但是登录失败。原因是RabbitMQ3.3以后限制了guest账号只能在本机登录。所以另外创建其他登录账号,设置为管理员也可以在web上登录。如果想要让guest用户在任何地方都能有权限访问,则要修改配置文件。然后重启rabbitmq服务I. 需要把rabbit.app配置文件中loopback_users设置为[]vim /usr/lib/rabbitmq/lib/rabbitmq_server-3.8.3/ebin/rabbit.app[{rabbit, [{loopback_users, []}]}].II. rabbitmqctl restart6.2 查看rabbitmq状态#rabbitmqctl status如果需要配置rabbitmq自启动#chkconfig rabbitmq-server on Rabbitmq的安装和配置可以参考官网指导https://www.rabbitmq.com/install-generic-unix.html ----结束 7 卸载rabbitmq和erlang1、 先卸载rabbitmq# service rabbitmq-server stop#yum -y remove rabbitmq-server.noarch#find / -name rabbitmq*把搜到的相关的rabbitmq的文件删除2、 卸载erlang#yum –y remove erlang*#find / -name erlang*把搜到的erlang相关的文件和lib等删除干净。 8 常见问题解决8.1 安装了erlang和rabbitmq,在安装管理插件rabbitmq-plugins enable rabbitmq_management时报错error:noproc现象描述:安装管理插件的时候报错,error:noproc原因:1、 可能是rabbitmq版本和erlang版本不配套;版本配套关系参加1 介绍 章节。2、 确认版本配套后,再确认下rabbitmq和erlang的安装顺序,必须先安装erlang再安装rabbitmq。本次报错就是这个原因。8.2 安装erlang21.3然后安装rabbitmq3.6.15之后,启动rabbitmq报错。Error:unable to connect node xx@xx:nodedown现象描述:安装erlang21.3然后安装rabbitmq3.6.15之后,启动rabbitmq报错。原因:Rabbitmq和erlang版本不配套。安装配套的版本即可解决。具体版本配套关系查询:https://www.rabbitmq.com/which-erlang.html?tdsourcetag=s_pctim_aiomsg 8.3 启动rabbitmq报错,提示 Failed to start RabbitMQ broker. #journalctl -xe里面提示start rabbitmq broker失败查看#ss -tnlp |grep 4369如果有多个进程占用4369端口,kill –p杀掉然后重启rabbitmq参考:https://m.imooc.com/article/305858
-
一、 软件介绍RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。二、 支持的操作系统经过华为云严格实测,以下操作系统在鲲鹏生态中可以完整运行RabbitMQ的全部功能: CentOS7.6三、 支持版本和获取方式 建议使用rabbitmq-3.6.15 下载地址: https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz四、 编译与测试环境本文选用华为鲲鹏云服务器ECS KC1实例做测试,KC1实例的处理器为兼容ARMv8指令集的鲲鹏920。详细规格如下:类别子项版本云主机配置ECS实例类型kc1.large.4ECS配置4U16GBEVS高IO(80GB)云OSKernel4.18.0 五、 编译安装与测试1 依赖安装yum install libtool libtool-ltdl-devel libevent-devel lua ncurses-devel openssl-devel flex2 编译安装1) 安装mabbitMQ之前先得保证erlang版本在20.3版本以上2) 安装erlang:获取源代码http://erlang.org/download/otp_src_20.3.tar.gz解压安装包tar -zxvf otp_src_20.3.tar.gz进入安装目录cd otp_src_20.3生成makefile文件./configure编译安装makefile文件make make install3) 测试完成编译软件:进入erl环境erl,回车显示以下信息 输入“1+1.”回车显示如下,说明安装成功 4) 安装RabbitMQ获取安装包wget https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xz解压安装包xz -d rabbitmq-server-generic-unix-3.6.15.tar.xz tar xvf rabbitmq-server-generic-unix-3.6.15.tar移动目录到/usr/local下mv rabbitmq_server-3.6.15 /usr/local/rabbitmq编辑profile文件vim /etc/profile新增如下环境变量export PATH=$PATH:/usr/local/rabbitmq/sbin 按”Esc”,按:键,输入“wq”执行以下命令,使得环境变量生效source /etc/profile3 验证测试1) 启动RabbitMQ:rabbitmq-server -detached2) 查看运行状态:rabbitmqctl status出现以下内容,说明启动成功 4 问题总结 无六、 声明本文档中的软件包均来自软件官网,安装文档部分参考官网的安装方法,本软件测试环境为华为鲲鹏云ARM服务器,具体配置信息参照《编译与测试环境》部分。本文档中的软件安装测试基于华为鲲鹏云ARM服务器环境测试,如在使用本文档的安装方法进行安装过程中,可能由于系统版本、软件依赖或其他原因造成软件安装不成功,请自行解决或联系我们,请事先备份相关重要数据、资料。使用文档风险由用户自行承担,在适用法律允许的最大范围内,对因使用或不能使用本文档所产生的损害及风险,包括但不限于直接或间接的个人损害、商业赢利的丧失、贸易中断、商业信息的丢失或任何其它经济损失,我司不承担任何责任。我司不担保所提供的软件功能及服务一定能满足用户的要求,也不担保服务不会中断,对服务的及时性、安全性、真实性、准确性都不作担保。
-
#化鲲为鹏,我有话说#添加EPEL源rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm添加Erlang源yum install wgetrpm -Uvh http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm测试erl安装yum install erlangerl安装RabbitMQwget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.14/rabbitmq-server-generic-unix-3.7.14.tar.xztar xvf rabbitmq-server-generic-unix-3.7.14.tar.xz -C /usr/local/添加环境变量vim /etc/profilePATH=$PATH:/usr/local/rabbitmq_server-3.7.14/sbin使环境变量生效source /etc/profile调整系统限制vi /etc/sysctl.conffs.file-max = 100000使设置生效sysctl -p查看系统限制sysctl fs.file-max调整用户限制vi /etc/security/limits.conf* soft nofile 65536* hard nofile 65536重启系统使之生效,检查用户限制是否生效ulimit -n关闭防火墙systemctl stop firewalld.service启动RabbbitMQ服务rabbitmq-server -detached启用RabbitMQ监控插件rabbitmq-plugins enable rabbitmq_management添加用户 rabbitmqctl add_user user password置用户为管理员角色)rabbitmqctl set_user_tags user administratordocker版rabbitmqdocker run -d --name rabbitmq -p 5672:5672 -p 15672:15672 -p25672:25672 -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=*** rabbitmq:latest
-
1、简介 RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ服务器是用Erlang语言编写的,而集群和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。 官方链接:https://www.rabbitmq.com/download.html 类别:中间件2、基础环境类别子项版本获取地址(方法)华为云虚拟机RC3(916)--OSCentOS7.6 Kernel4.14 软件包GCC4.8.5 RabbitMQ3.6.15 zlib1.2.7 make3.82 openssl1.0.2k Erlang9.2 3、依赖安装清除yumyum clean all下载服务器包到本地缓存yum makecache 更新yum 包yum -y update安装操作系统自带依赖软件版本mkdir /xxxx/RabbitMQcd /xxxx/RabbitMQyum install gcc glibc-devel make ncurses-devel openssl-devel xmlto4、组件编译安装安装并解压Erlangwget -c http://erlang.org/download/otp_src_20.2.tar.gztar -zxvf otp_src_20.2.tar.gz进入目录otp_src_20.2cd oopt_src_20.2编译安装./configure --prefix=/usr/local/erlangmake && make install测试Erlang是否安装成功,结果见下图cd /xxxx/RabbitMQ/erlang/bin./erl退出控制台(halt()后面有个点)halt().配置环境变量, 在末尾加入这么一行即可:export PATH=$PATH:/leiju/RabbitMQ/erlang/bin vim /etc/profile更新配置文件source /etc/profile5、系统配置下载并解压rabbitmq-server-generic-unix-3.6.15.tar.xzwget -c http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.15/rabbitmq-server-generic-unix-3.6.15.tar.xzxz -d rabbitmq-server-generic-unix-3.6.15.tar.xztar -xvf rabbitmq-server-generic-unix-3.6.15.tar配置rabbitmq的环境变量, 在末尾加入以下配置:export PATH=$PATH:/leiju/RabbitMQ/rabbitmq_server-3.6.15/sbinvim /etc/profile更新配置文件source /etc/profile6、测试测试内容:RabbitMQ是否能正常启动 rabbitmq-server -detached 启动rabbitmqctl stop 关闭rabbitmqctl status 查看状态测试结果:7、参考信息官方文档:https://www.rabbitmq.com/documentation.html 8、FAQ无
-
1. 简介RabbitMQ 是一个开源的,在AMQP基础上完成的,可复用的企业消息系统。支持主流的操作系统,linux、windows、macOS等,多种开发语言支持,java、Python、ruby、.net、PHP、C/C++、node.js等。本指导描述了在ARM64架构,CentOS7.5系统下安装RabbitMQ3.7.4的过程,可供相关人士参考。2. 部署环境Packet NameVersion版本CentOSCentOS 7.5 with ARMRabbitMQ3.7.4Erlang20.1.7Socat1.7.23. 安装部署在安装RabbitMQ3.7.4的时候,如果直接使用erlang官网的rpm包安装,会导致RabbitMQ无法识别erlang版本的问题。为了解决这个问题,RabbitMQ团队提供了零依赖的RPM包。在下面的过程中,我们将直接使用源码编译erlang20.1,以解决RabbitMQ的依赖问题。3.1 下载Erlang源码包wget https://github.com/rabbitmq/erlang-rpm/archive/v20.1.7.1.tar.gztar -zxvf v20.1.7.1.tar.gz解压后,可以看到erlang-rpm-20.1.7.1文件夹。3.2 依赖安装在系统中安装需要的组件,安装相应的库:yum install -y rpm-build autoconf ncurses-devel openssl-devel socat3.3 编译安装Erlangcd erlang-rpm-20.1.7.1修改erlang.spec文件vim erlang.spec在%define OSL_File_Name Erlang_ASL2_LICENSE.txt后面加上%define debug_package %{nil}保存后退出,进行编译make等待一段时间后,编译完成,切换到RPM包所在目录cd /RPMS/aarch64安装erlang20.1.7rpm -ivh erlang-20.1.7.1-1.el7.aarch64.rpm3.4 安装RabbitMQ3.7.4下载RPM包并安装wget https://dl.bintray.com/rabbitmq/all/rabbitmq-server/3.7.4/rabbitmq-server-3.7.4-1.el7.noarch.rpmrpm –ivh rabbitmq-server-3.7.4-1.el7.noarch.rpm4. 测试设置RabbitMQ服务:systemctl enable rabbitmq-server #设置服务自动启动systemctl start rabbitmq-server #启动rabbitmq服务rabbitmq-plugins enable rabbitmq_management #启用RabbitMQ的管理插件rabbitmqctl add_user admin admin #设置用户名和密码rabbitmqctl set_user_tags admin administrator #设置用户角色rabbitmqctl set_permissions -p / admin “.*” “.*” “.*” #为admin分配权限systemctl restart rabbitmq-server #重启rabbitmq服务访问http://ip:15672,输入admin,admin, 登录后,可以看到图形操作界面5. 参考信息[1] https://stackoverflow.com/questions/47945559/cant-install-rabbitmq-server-3-7-1-on-centos7-wrong-erlang-version[2] https://www.cnblogs.com/think8848/p/7050606.html6. FAQ1.编译过程中可能会有相关报错,显示缺少autoconf,socat等,注意在编译前安装相关依赖包yum install -y rpm-build autoconf ncurses-devel openssl-devel socat2. 在编译过程中遇到下图报错信息:在erlang.spec文件头加上%define debug_package %{nil}再编译,即可解决问题。
-
尊敬的华为云客户:华为云计划于2018/08/15 00:00:00将分布式消息服务Kafka专享版、RabbitMQ队列正式商用。商用后,Kafka专享版和RabbitMQ队列支持按需和包周期计费,具体价格请届时参考该服务的计费详情页。公测期间体验服务的用户,商用后将会按需计费,为保证业务的连续性,请您及时关注账户,确保账户余额充足;如您体验结束,不再需要使用该服务,建议您尽快删除队列,以免账户扣款。Kafka专享版和RabbitMQ队列商用版本采用更高性能主机,性能强劲。具有多种规格实例供选择,满足用户不同场景需要;提供SSL能力,具备更高的安全性。更多关于分布式消息服务的产品介绍,请您点击了解。如您在使用过程中有宝贵意见,欢迎您拨打华为云服务热线:4000-955-988与我们联系。感谢您对华为云的支持!
推荐直播
-
华为云码道 × 仓颉编程:工程化AI编码探索2026/05/27 周三 19:00-21:00
刘俊杰-华为云仓颉语言专家/李炎-华为云码道技术专家/王智鹏-OpenCangjie开源社区发起人
本场直播围绕华为云仓颉语言与华为云码道的深度结合,展示华为云智能编程从零基础到高效落地的完整生态能力。以华为云码道为引擎,仓颉语言为载体,带给大家日常提效、趣味创新到极速量产的开发体验。
回顾中
热门标签