RabbitMq集群的安装(一)----RabbitMq集群安裝

女爷i 2021-12-14 18:23 429阅读 0赞

零、写在前面与规划

  1. 规划和预安装的软件都在这一篇中 [kafka集群的安装(一)][kafka]
  2. 我们这一篇直接使用上一篇的环境,安装RabbitMq相关的内容即可
  3. RabbitMq是基于erLang开发的,因此RabbitMq的集群也一定依赖erLang的集群能力。我们只需要在erLangcookie激活即可。

一、RabbitMq安装

  1. RabbitMq需要erLang的支持,因此我们需要先安装erLang,再安装rabbitMq
  2. 1.1:下载并安装erLang [https://www.rabbitmq.com/releases/erlang/][https_www.rabbitmq.com_releases_erlang]erlang-19.0.4-1.el7.centos.x86\_64.rpm
  3. 进入下载的erlang的放置路径,

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmtkcmFnb25raW5n_size_16_color_FFFFFF_t_70

  1. 执行命令 rpm -ivh erlang-19.0.4-1.el7.centos.x86\_64.rpm 如下图

20190703200025512.png

  1. 安装完毕后,测试,如下图

20190703200047587.png

  1. 1.2:下载并安装RabbitMq [http://www.rabbitmq.com/releases/rabbitmq-server/][http_www.rabbitmq.com_releases_rabbitmq-server]v3.6.15/rabbitmq-server-3.6.15-1.el7.noarch.rpm
  2. rpm文件路径与erlang相同,所以直接安装即可,如下图

20190703200148606.png

  1. 提示缺少socat,安装。中间可能需要确认一次,输入y即可

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmtkcmFnb25raW5n_size_16_color_FFFFFF_t_70 1

  1. socat安装完毕后,开始装RabbitMq

20190703200311947.png

二、测试并建立用户

  1. 2.1:启动
  2. 如果使用的是默认安装,那么可能会安装到/usr/sbin路径下,进入目录,执行以下命令
  3. /sbin/service rabbitmq-server start \#启动
    • /sbin/service rabbitmq-server stop #关闭
    • /sbin/service rabbitmq-server status #状态
  1. 或者使用下面的方法也可以
  2. service rabbitmq-server start
  3. service rabbitmq-server status
  4. #CentOS7推荐使用如下方法:
  5. systemctl start rabbitmq-server.service
  6. systemctl status rabbitmq-server.service
  7. service rabbitmq-server status 也可以啟動和查看狀態。
  8. 2.2:插件管理
  9. 执行命令: ./rabbitmq-plugins list(或者在其他路径下,执行`rabbitmq-plugins list也有想通效果`

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmtkcmFnb25raW5n_size_16_color_FFFFFF_t_70 2

  1. #启用rabbit的管理插件
  2. rabbitmq-plugins enable rabbitmq_management
  3. #日志跟踪插件 启用trace插件
  4. rabbitmq-plugins enable rabbitmq_tracing
  5. #打开trace的开关
  6. rabbitmqctl trace_on
  7. #打开trace的开关(test为需要日志追踪的vhost)
  8. rabbitmqctl trace_on -p test
  9. #关闭trace的开关
  10. rabbitmqctl trace_off

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmtkcmFnb25raW5n_size_16_color_FFFFFF_t_70 3

  1. #安装rabbitmq_delayed_message_exchange(延时队列)
  2. #默认插件目录:
  3. cd /usr/lib/rabbitmq/lib/rabbitmq_server-3.6.15/plugins/
  4. wget https://dl.bintray.com/rabbitmq/community-plugins/rabbitmq_delayed_message_exchange-0.0.1.ez
  5. rabbitmq-plugins enable rabbitmq_delayed_message_exchange

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmtkcmFnb25raW5n_size_16_color_FFFFFF_t_70 4

  1. 查看状态

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmtkcmFnb25raW5n_size_16_color_FFFFFF_t_70 5

  1. 2.3:建立访问RabbitMq的账号并分组,然后查看所有用户
  2. 命令分别为: ./rabbitmqctl add\_user admin admin
  3. ./rabbitmqctl set\_user\_tags admin administraotr
  4. ./rabbitmqctl list\_users

20190703201538745.png

  1. 开启了rabbitmq\_management并建立了账号之后,就可以登录到rabbitmqweb管理界面了。
  2. 通过查看当前rabbitmq 的状态,找到端口。http端口为15672

2019070415222628.png

三、加入集群

  1. 3.1:统一.erlang.cookie
  2. 前面说了,RabbitMq的集群依赖erLang的集群,同时erLang集群中各节点的通信依赖magic cookie实现。同时由于我们在上面使用的是rpm安装的RabbitMqerLang,因此erLangcookie文件路径存在於/var/lib/rabbitmq下。文件名叫做“.erlang.cookie”。但是它是隐藏的
  3. 使用ll -all命令或者ls -all命令都可以看到这个隐藏文件,修改它的权限为“400”否则节点间无法通信(我没试过都改为777会怎样),然后用一个erLang节点下的cookie文件的值替换其他节点的。
  4. 修改完毕之后,重启所有节点的RabbitMq(重启速度可能不会很快,有点心理准备哈 ),命令如下
  5. systemctl restart rabbitmq-server.service
  6. systemctl status rabbitmq-server.service
  7. 3.2:加入集群
  8. 根据我的规划([规划帖见这里][kafka])一共是三台服务器的集群,我以第一台服务器xxCentos7One作为RabbitMq的主节点,其他两台服务器加入到当前节点。操作步骤如下图

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2RhcmtkcmFnb25raW5n_size_16_color_FFFFFF_t_70 6

  1. 图上弄得挺乱,将就看吧
  2. 红框部分是操作步骤的命令,其中第三步操作异常,原因是我以为连接到的主节点名称应该是“主节点登录账号@主节点服务器别名”,测试后发现应改写为“rabbit@主节点服务器别名”。
  3. 分别查看三台服務器上现在的RabbitMq集群的情况,`rabbitmqctl cluster_status。如下图`

``

  1. 图中列出了运行的节点、分区、集群名等信息。由于我没有进一步的配置,因此暂时没有分区等详细信息。
  2. 后续会补充关于高可用配置与镜像队列相关内容,敬请期待

参考资料 centos下rabbitmq的集群管理

发表评论

表情:
评论列表 (有 0 条评论,429人围观)

还没有评论,来说两句吧...

相关阅读

    相关 RabbitMQ

    RabbitMQ集群 在RabbitMQ集群里,运行时状态包含交换器、队列、绑定器、用户、虚拟主机以及策略,它们对所有节点都可用。 这种共享运行时状态的特性,使得集群

    相关 RabbitMQ安装

    一、准备两台虚拟机 1、设置一台的别名为A,:`vi /etc/hostname` 2、设置另一台的别名为B:`vi /etc/hostname` 3、修改每一个虚

    相关 rabbitmq 部署

    rabbitmq 目前的主要功能是: 1.用作消息队列,发送消息,接受消息 2.用作websocket主动推送引擎,与web端建立长链接 为什么要用到rabbitmq 集

    相关 RabbitMQ

    一、RabbitMQ集群概述 rabbitmq有三种模式:单机模式,普通集群模式,镜像集群模式 1、单机模式: 本地测试用、生产环境不会用 2、普通集

    相关 rabbitmq简介

    rabbitmq自带内建集群,其旨在rabbitmq的高可用,允许消费者和生产者在rabbitmq节点崩溃的情况下继续运行,以及通过添加更多节点的方式来线性扩展消息的吞吐量。但