RabbitMQ——RabbitMQ搭建及问题

文章目录

    • 单点搭建
      • 准备
        • 版本确定
        • 安装各种依赖模块
      • Erlang安装
      • RabbitMQ安装
        • 安装流程
        • 安装问题
    • 集群搭建
      • 一般集群
      • HA集群
    • 参考


单点搭建

准备

版本确定

官方给出的RabbitMQ和Erlang对应版本

RabbitMQ版本 Erlang最低版本 Erlang最高版本
3.7.15 20.3.x 22.0.x
3.7.14、3.7.13、3.7.12、3.7.11
3.7.10、3.7.9、3.7.8、3.7.7
20.3.x 21.3.x
3.7.6、3.7.5、3.7.4、3.7.3
3.7.2、3.7.1、3.7.0
19.3 20.3.x

选用版本:

  • Erlang:21.0(otp_src_21.0.tar.gz)
  • RabbitMQ:3.1.16(rabbitmq-server-3.7.16-1.el7.noarch.rpm)

安装各种依赖模块

yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel openssl-devel

在configure后会出下如下报错

*********************************************************************
**********************  APPLICATIONS DISABLED  **********************
*********************************************************************

odbc           : ODBC library - link check failed

*********************************************************************
*********************************************************************
**********************  APPLICATIONS INFORMATION  *******************
*********************************************************************


wx             : wxWidgets not found, wx will NOT be usable

安装unixODBC和unixODBC-devel即可,至于第二错报错wxWidgets可以不安装

yum install unixODBC unixODBC-devel

至此安装环境准备完毕

Erlang安装

1.解压

tar -xvf otp_src_21.0.tar.gz

安装包没有用gzip格式压缩,所以不加z参数,如果使用tar -zxvf解压则会报错

tar -zxvf otp_src_21.0.tar.gz 

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

2.进入文件夹(otp_src_21.0)

./configure --prefix=/usr/local/erlang
make && make install

–prefix后为自定义安装路径
3.配置环境变量
在/etc/profile文件中追加

export ERLANG_HOME=/usr/local/erlang
export PATH=$JAVA_HOME/bin:$PATH:$ERLANG_HOME/bin

执行命令 source /etc/profile 加载配置文件
4.验证
输入erl进入控制台

[root@localhost bin]# erl
Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:1:1] [ds:1:1:10] [async-threads:1] [hipe]

Eshell V10.0  (abort with ^G)
1> 

Erlang安装完成

RabbitMQ安装

安装流程

执行命令

rpm -ivh --nodeps rabbitmq-server-3.7.16-1.el7.noarch.rpm

启动rabbitmq服务(rabbitmq-server restart):

[root@localhost /]# rabbitmq-server restart

  ##  ##
  ##  ##      RabbitMQ 3.7.16. Copyright (C) 2007-2019 Pivotal Software, Inc.
  ##########  Licensed under the MPL.  See https://www.rabbitmq.com/
  ######  ##
  ##########  Logs: /var/log/rabbitmq/[email protected]
                    /var/log/rabbitmq/rabbit@localhost_upgrade.log

              Starting broker...
 completed with 0 plugins.

RabbitMQ已安装完成,启动管理插件

[root@localhost /]# rabbitmq-plugins enable rabbitmq_management
Enabling plugins on node rabbit@localhost:
rabbitmq_management
The following plugins have been configured:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch
Applying plugin configuration to rabbit@localhost...
The following plugins have been enabled:
  rabbitmq_management
  rabbitmq_management_agent
  rabbitmq_web_dispatch

再重启RabbitMQ服务,访问http://192.168.108.128:15672/ 进入管理页面
RabbitMQ——RabbitMQ搭建及问题_第1张图片

安装问题

错误:依赖检测失败:
	erlang >= 20.3 被 rabbitmq-server-3.7.16-1.el7.noarch 需要
	socat 被 rabbitmq-server-3.7.16-1.el7.noarch 需要

问题1:erlang >= 20.3 被 rabbitmq-server-3.7.16-1.el7.noarch 需要
解决:添加参数–nodeps

rpm -ivh --nodeps rabbitmq-server-3.7.16-1.el7.noarch.rpm

问题2:socat 被 rabbitmq-server-3.7.16-1.el7.noarch 需要
安装依赖socat

wget http://ftp.tu-chemnitz.de/pub/linux/dag/redhat/el6/en/x86_64/rpmforge/RPMS/socat-1.7.2.4-1.el6.rf.x86_64.rpm

问题3:安装socat时tcp_wrappers 被 socat-1.7.2.4-1.el6.rf.x86_64 需要

错误:依赖检测失败:
	tcp_wrappers 被 socat-1.7.2.4-1.el6.rf.x86_64 需要

解决:安装tcp_wrappers

yum -y install tcp_wrappers

集群搭建

一般集群

集群服务器三台

服务器名 ip
node1 192.168.108.128
node2 192.168.108.129
node3 192.168.108.130
1.进入/var/lib/rabbitmq文件夹中,查看.erlang.cookie内容,保证三台服务器的.erlang.cookie文件内容一致
2.启动三台服务器的RabbitMQ服务
3.在node2、node3上关闭RabbitMQ应用
[root@node2 ~]# rabbitmqctl stop_app
[root@node3 ~]# rabbitmqctl stop_app

4.将服务器node2、node3加入到服务器节点node1中

[root@node2 ~]# rabbitmqctl join_cluster --ram rabbit@node1
[root@node3 ~]# rabbitmqctl join_cluster --ram rabbit@node1

5.开启无服务的RabbitMQ应用

[root@node2 ~]# rabbitmqctl start_app
[root@node3 ~]# rabbitmqctl start_app

6.在node1管理界面查看节点情况
RabbitMQ——RabbitMQ搭建及问题_第2张图片
集群配置成功

HA集群

RabbitMQ集群搭建参考官方文档:
RabbitMQ HA集群搭建

参考

初识RabbitMQ——AMQP 0-9-1

SpringBoot整合RabbitMQ——Direct交换机

SpringBoot整合RabbitMQ——Fanout交换机

SpringBoot整合RabbitMQ——Topic交换机

SpringBoot整合RabbitMQ——Headers交换机

你可能感兴趣的:(Java,#,RabbitMQ,rabbitmq,分布式,linux,消息队列)