美文网首页
RabbitMQ入门(二)

RabbitMQ入门(二)

作者: xx1994 | 来源:发表于2018-06-30 12:30 被阅读0次

单机搭建集群

自己学习测试,受限于机器原因,有时只能自己单机尝试下集群操作,接下来带你学会单机部署集群操作。

插件管理

为什么要先学会插件管理,因为不了解这个,搭建集群会有很多坑等着你踩。

rabbitmq-plugins enable rabbitmq_management
#启用rabbitmq_management插件

rabbitmq-plugins list
# 显示所有的插件,每一行一个

rabbitmq-plugins list -v
# 显示所有的插件,并且显示插件的版本号和描述信息

rabbitmq-plugins list -v management
# 显示所有名称含有 "management" 的插件

rabbitmq-plugins list -e rabbit
# 显示所有显示或者隐式启动的插件

rabbitmq-plugins disable --all
#禁用所有插件

以上便是常用的一些插件管理命令。

单机集群搭建,网上一些资料都是写明使用RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit1 rabbitmq-server -detached 这个命令,修改portnodename便可以。但是这个是有前提的,就是你必须先禁用所有的插件,不然的话,你是无法成功搭建集群,因为有些插件会监听专门的接口来提供服务,这个时候你就还得去区分开这些插件使用的端口号。

教科书般集群操作

  1. rabbitmq-plugins list -e rabbit 查看当前是否有开启的插件

  2. rabbitmq-plugins disable --all如果有启动的插件,禁用所有插件

  3. RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit1 rabbitmq-server -detached
    RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detached
    RABBITMQ_NODE_PORT=5674 RABBITMQ_NODENAME=rabbit3 rabbitmq-server -detached
    
    #通过这三个命令可以开启三个节点
    
    rabbitmqctl status -n rabbit1@xuxiangdeMacBook-Pro
    #查看一个节点的状态
    
  4. 将rabbit2节点加入集群

    rabbitmqctl -n rabbit2@xuxiangdeMacBook-Pro stop_app
    #先停止rabbit2
    rabbitmqctl -n rabbit2@xuxiangdeMacBook-Pro reset
    #清空元数据和状态
    rabbitmqctl -n rabbit2@xuxiangdeMacBook-Pro join_cluster rabbit1@xuxiangdeMacBook-Pro
    #加入第一个节点
    rabbitmqctl -n rabbit2@xuxiangdeMacBook-Pro start_app
    #启动第二个节点
    
  5. 如上重复对rabbit3使用,便可以得到rabbit1,rabbit2,rabbit3组成的集群

插件开启的情况

很多时候,你可能需要开启某些插件,例如rabbitmq_management插件,开启后便可以在web界面查看相关情况,很是舒服。这种情况下,按照上面的集群操作,必然会出现问题。

例如在开启了rabbitmq_management插件时,用上面那种方法启动多个节点时,便会出现如下错误(截取错误部分)。

Error description:
   ......
throw:{could_not_start,rabbitmq_management,
       {rabbitmq_management,
        {bad_return,
         {{rabbit_mgmt_app,start,[normal,[]]},
          {'EXIT',
           {{could_not_start_listener,
             [{port,15672}],
             {shutdown,
              {failed_to_start_child,ranch_acceptors_sup,
               {listen_error,rabbit_web_dispatch_sup_15672,eaddrinuse}}}},

使用RABBITMQ_NODE_PORT=5673 RABBITMQ_NODENAME=rabbit2 rabbitmq-server启动rabbit2时,便可以看到上述错误。(如果加上-detached,便在后台启动,看不到这些,只能去日志查看)。

可以看到上面错误中说明could_not_start,rabbitmq_management同时{could_not_start_listener,[{port,15672}],web界面操作默认的端口是15672,但是我们的rabbit1已经占用了这个端口,此时咱们启动rabbit2时,便会出现错误,这时候你就得在启动时指定相应参数避免这个问题。

RABBITMQ_NODE_PORT=5673 RABBITMQ_SERVER_START_ARGS="-rabbitmq_management listener [{port,15673}]" RABBITMQ_NODENAME=rabbit2 rabbitmq-server -detached
#指定端口,改为15673,这样便可以避免上述问题

同样可以利用上述方法启动rabbit3,然后再使用之前同样的操作将这两个节点加入集群便可在web界面看到下图


集群搭建成功

这样便是成功的搭建好了一个单机上的集群。

相关文章

  • MyBatis-从查询昨天的数据说起

    前段时间写了《RabbitMQ入门》系列RabbitMQ入门-初识RabbitMQ RabbitMQ入门-从Hel...

  • RabbitMQ入门(二)

    单机搭建集群 自己学习测试,受限于机器原因,有时只能自己单机尝试下集群操作,接下来带你学会单机部署集群操作。 插件...

  • 消息服务 - RabbitMQ 基础入门

    rabbitmq RabbitMQ官方入门教程 本文算是实现对入门教程的 java版本翻译吧。本文中演示代码地址 ...

  • RabbitMQ基础

    0. 前言 什么是消息中间件 安装RabbitMQ 编写RabbitMQ的入门程序 RabbitMQ的5种模式特征...

  • RabbitMQ入门-高效的Work模式

    扛不住的Hello World模式 上篇《RabbitMQ入门-从HelloWorld开始》介绍了RabbitMQ...

  • RabbitMQ 入门

    1:windows 下rabbitMQ 的安装 2:介绍 3:RabbitMQ 常见术语 3:java 入门实例 ...

  • RabbitMQ入门-从HelloWorld开始

    从读者的反馈谈RabbitMQ 昨天发完《RabbitMQ入门-初识RabbitMQ》,我陆陆续续收到一些反馈。鉴...

  • RabbitMq相关文章索引(1)

    基本常识 rabbitmq百度百科 RabbitMQ用户角色及权限控制 rabbitMQ入门详解,大神勿喷。。。自...

  • RabbitMQ学习

    MQ入门总结(五)RabbitMQ的原理和使用Spring Boot 中使用 RabbitMQ -- 很棒Cent...

  • RabbitMQ 学习-direct模式

    RabbitMQ direct模式 关于它的快速入门,可以在这里查看:http://www.rabbitmq.co...

网友评论

      本文标题:RabbitMQ入门(二)

      本文链接:https://www.haomeiwen.com/subject/pustuftx.html