【问题标题】:How to configure RabbitMQ Cluster on Windows如何在 Windows 上配置 RabbitMQ 集群
【发布时间】:2019-04-02 18:07:51
【问题描述】:

拜托,我需要你的帮助。

自从上周尝试在 Windows 服务器上配置 RabbitMQ 集群以来,我一直在苦苦挣扎。我重新安装了 RabbitMQ 3.7.8 和 ErlangOTP 21-1 超过 15 次试图找出问题并修复它,但不幸的是,我所有的尝试都失败了。

我的环境: 三台带操作系统的虚拟机:windows server 2012

环境变量设置:

•   ERLANG_HOME = C:\Program Files\erl10.1
•   path: C:\Program Files\Handle
•   %RABBITMQ_BASE% = c:\RabbitMQ
•   %RABBITMQ_CONFIG_FILE% = %RABBITMQ_BASE%
•   RABBITMQ_NODENAME = masternode
•   Server names: RabbitMQ01 “masternode” , RabbitMQ02, RabbitMQ03
•   Adding IP & hots name “masternode” in the host file for name resolution (C:\Windows\System32\drivers\etc\hosts)
•   Setting RabbitMQ configuration file “advanced.config” in c:\users\USERNAME\AppData\Roaming\RabbitMQ” to enable users to login to RabbitMQ management remotely by adding the following setting
[
{rabbit,
  [
   {tcp_listeners, [5672]},
   {loopback_users, []},

   {num_tcp_acceptors, 100}
  ]
  }
].

安装步骤:(针对每台服务器)

1. After setting the environment variables, I restarted the machine. Then
2. Install ErlangOTP 21-1
3. Install RabbitMQ 3.7.8 server
4. Enable plugins - rabbitmq-plugins.bat enable rabbitmq_management 

以上服务器安装完成后,我开始配置集群

  1. 首先,我通过 ping Rabbit@masternode 验证了从 RabbitMQ02, 02 可以访问 masternode 并且成功。
  2. 使用以下命令停止 RabbitMQ 服务器和应用程序

    rabbitmq-服务停止 rabbitmqctl stop_app

    1. 将 .erlang.cookie 从主节点“path=c:\windows\system32\config\systemprofile”复制到 RabbitMQ02“path=c:\windows\system32\config\systemprofile”和“path=c:\users\USERNAME” ”。
  3. 通过执行以下命令启动 RabbitMQ 服务和应用程序

rabbitmqctl start_app rabbitmq-服务启动

  1. 通过执行此命令“rabbitmqctl stop_app”再次停止应用程序
  2. 我开始将 RabbitMQ02 加入到主节点 rabbitmqctl join_cluster rabbit@masternode(小盒子)

一旦达到这一点,我会在 RabbitMQ02 上收到以下错误。

C:\Program Files\RabbitMQ 服务器\rabbitmq_server-3.7.8\sbin>rabbitmqctl join_cluster rabbit@masternode 错误:无法在节点“rabbit@rhrabbitmq02”上执行操作。请参见 诊断信息和建议如下。

最常见的原因是:

  • 目标节点无法访问(例如,由于主机名解析、TCP 连接 r 防火墙问题)
  • CLI 工具无法通过服务器进行身份验证(例如,由于 CLI 工具的 Erlang cookie 与服务器的不匹配)
  • 目标节点未运行

除了以下诊断信息:

  • 请参阅http://rabbitmq.com/document 上的 CLI、集群和网络指南 ation.html 了解更多
  • 在节点rabbit@rhrabbitmq02上查询服务器日志

诊断

尝试联系:[rabbit@rhrabbitmq02]

兔子@rhrabbitmq02: * 连接到 rhrabbitmq02 上的 epmd(端口 4369) * epmd 报告节点“兔子”使用端口 25672 进行节点间和 CLI 工具流量 我知道了 * TCP 连接成功但 Erlang 分发失败

  • 身份验证失败(被远程节点拒绝),请检查Erlang 饼干

当前节点详情: * 节点名称:rabbitmqcli41@rhrabbitmq02 * 有效用户的主目录:C:\Users\admin * Erlang cookie 哈希:pndBksvQokXyiSqBdnne/g==

主节点状态:

C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.8\sbin>rabbitmqctl status
Status of node masternode@rhrabbitmq01 ...
[{pid,4008},
 {running_applications,
     [{rabbitmq_management,"RabbitMQ Management Console","3.7.8"},
      {rabbitmq_management_agent,"RabbitMQ Management Agent","3.7.8"},
      {rabbitmq_web_dispatch,"RabbitMQ Web Dispatcher","3.7.8"},
      {rabbit,"RabbitMQ","3.7.8"},
      {amqp_client,"RabbitMQ AMQP Client","3.7.8"},
      {rabbit_common,
          "Modules shared by rabbitmq-server and rabbitmq-erlang-client",
          "3.7.8"},
      {os_mon,"CPO  CXC 138 46","2.4.6"},
      {cowboy,"Small, fast, modern HTTP server.","2.2.2"},
      {mnesia,"MNESIA  CXC 138 12","4.15.5"},
      {cowlib,"Support library for manipulating Web protocols.","2.1.0"},
      {lager,"Erlang logging framework","3.6.3"},
      {syslog,"An RFC 3164 and RFC 5424 compliant logging framework.","3.4.3"},
      {ranch_proxy_protocol,"Ranch Proxy Protocol Transport","1.5.0"},
      {jsx,"a streaming, evented json parsing toolkit","2.8.2"},
      {ranch,"Socket acceptor pool for TCP protocols.","1.5.0"},
      {ssl,"Erlang/OTP SSL application","9.0.2"},
      {public_key,"Public key infrastructure","1.6.2"},
      {asn1,"The Erlang ASN1 compiler version 5.0.7","5.0.7"},
      {inets,"INETS  CXC 138 49","7.0.2"},
      {xmerl,"XML parser","1.3.18"},
      {recon,"Diagnostic tools for production use","2.3.2"},
      {crypto,"CRYPTO","4.3.3"},
      {goldrush,"Erlang event stream processor","0.1.9"},
      {compiler,"ERTS  CXC 138 10","7.2.5"},
      {syntax_tools,"Syntax tools","2.1.6"},
      {sasl,"SASL  CXC 138 11","3.2.1"},
      {stdlib,"ERTS  CXC 138 10","3.6"},
      {kernel,"ERTS  CXC 138 10","6.1"}]},
 {os,{win32,nt}},
 {erlang_version,
     "Erlang/OTP 21 [erts-10.1] [64-bit] [smp:2:2] [ds:2:2:10] [async-threads:64
]\n"},
 {memory,
     [{connection_readers,0},
      {connection_writers,0},
      {connection_channels,0},
      {connection_other,29212},
      {queue_procs,0},
      {queue_slave_procs,0},
      {plugins,1192744},
      {other_proc,26188552},
      {metrics,195524},
      {mgmt_db,337648},
      {mnesia,75088},
      {other_ets,2748464},
      {binary,181696},
      {msg_index,27840},
      {code,27573597},
      {atom,1131721},
      {other_system,9846202},
      {allocated_unused,9377056},
      {reserved_unallocated,0},
      {strategy,rss},
      {total,[{erlang,69528288},{rss,78905344},{allocated,78905344}]}]},
 {alarms,[]},
 {listeners,
     [{clustering,25672,"::"},
      {amqp,5672,"::"},
      {amqp,5672,"0.0.0.0"},
      {http,15672,"::"},
      {http,15672,"0.0.0.0"}]},
 {vm_memory_calculation_strategy,rss},
 {vm_memory_high_watermark,0.4},
 {vm_memory_limit,3435785420},
 {disk_free_limit,50000000},
 {disk_free,86038073344},
 {file_descriptors,
     [{total_limit,8092},
      {total_used,2},
      {sockets_limit,7280},
      {sockets_used,0}]},
 {processes,[{limit,1048576},{used,399}]},
 {run_queue,1},
 {uptime,6087},
 {kernel,{net_ticktime,60}}]

【问题讨论】:

  • RabbitMQ 没有在 masternode 上运行 - 它就在输出中。在masternode 上,rabbitmqctl status 的输出是什么?
  • 多次安装和卸载RabbitMQ后发现cookie文件名看起来不正常,文件名看起来像“.erlang”而不是“.erlang.cookie” 我不知道为什么吗?
  • 对不起,我复制了我从主节点卸载 RabbitMQ 的信息。现在我重新安装 RabbitMQ 并将 cookie 复制到 RabbitMQ02,然后我尝试启动 App 以查看它是否可以正常工作,但它没有。这是错误消息。
  • 消息已更新以反映实际的错误消息。
  • 在加入命令失败后,我无法在 RabbitMQ02 中启动 RabbitMQ 应用程序或执行与主节点的加入。

标签: rabbitmq


【解决方案1】:

问题解决:RABBITMQ_NODENAME设置错误“masternode”而不是“rabbit@masternode”,命令执行顺序出错(加入集群时-先stop_app然后服务停止),更改后重启服务配置而不是重新安装rabbitmq服务。

如果需要根据我的设置场景在 Windows 上安装、配置 rabbitmq 和配置集群,我将很乐意分享所有步骤详细信息。最好的问候。

【讨论】:

    猜你喜欢
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 2014-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    相关资源
    最近更新 更多