RabbitMQ:验证rabbitmq的版本

Posted

技术标签:

【中文标题】RabbitMQ:验证rabbitmq的版本【英文标题】:RabbitMQ: Verify version of rabbitmq 【发布时间】:2011-11-27 10:34:40 【问题描述】:

如何验证服务器上运行的是哪个版本的rabbitmq?

是否有命令验证rabbitmq是否正在运行?

【问题讨论】:

【参考方案1】:

sudo rabbitmqctl 状态

然后寻找看起来像这样的线:

兔子,"RabbitMQ","2.6.1",

【讨论】:

我在 Archlinux 上得到了这个 - [rabbit,34362,rabbitmqctl23794,40359] 虽然我安装了 rabbitmq 3.1.3-1 :) 如果 rabbitmq 服务停止了呢?它不起作用。如何检索“关闭”rabbitmq 的版本? 在 Windows 中这非常相似。 "C:\Program Files\RabbitMQ Server\rabbitmq_server-3.6.5\sbin\rabbitmqctl status" 文件夹名称可能因您的 Rabbit 版本而异。【参考方案2】:

正如 Marek 在本地服务器或远程服务器上所说(使用 amqplib):

from amqplib import client_0_8 as amqp
import sys

conn = amqp.Connection(host=sys.argv[1], userid="guest", password="guest", virtual_host="/", insist=False)

for k, v in conn.server_properties.items():
    print k, v

另存为checkVersion.py 并使用python checkVersion.py dev.rabbitmq.com 运行:

% python checkVersion.py dev.rabbitmq.com
information Licensed under the MPL.  See http://www.rabbitmq.com/
product RabbitMQ
copyright Copyright (C) 2007-2011 VMware, Inc.
capabilities 
platform Erlang/OTP
version 2.6.0

【讨论】:

这对我有用,但只适用于 Python3,我必须在文件夹 client_0_8(在 Windows 中)下创建 checkVersion.py【参考方案3】:

您可以简单地从命令行执行:

sudo rabbitmqctl status | grep rabbit

【讨论】:

可能格式已经改变 - 从版本 3.8.4 开始,更好的搜索字符串是 sudo rabbitmqctl status | grep -i "version"【参考方案4】:

如果rabbitimq无法启动,我发现确定版本的唯一方法是通过安装程序系统。

Debian/Ubuntu 示例:

dpkg -s rabbitmq-server | grep Version

【讨论】:

yum list rabbitmq-server 用于 Rhel/Centos/Fedora【参考方案5】:

由于我希望在 Windows 机器上使用 C# 执行此操作,并且所有当前答案都是针对 *nix,所以我将发布我最终使用的代码:

public string GetRabbitMqVersion()

    string prefix = "rabbitmq_server-";
    var dirs = System.IO.Directory.EnumerateDirectories(@"C:\Program Files (x86)\RabbitMQ Server", string.Format("0*",prefix));

    foreach (var dir in dirs)
    
        //Just grab the text after 'rabbitmq_server-' and return the first item found
        var i = dir.LastIndexOf(prefix);
        return dir.Substring(i+16);
    
    return "Unknown";

【讨论】:

【参考方案6】:

如果您使用的是“管理”(web)插件,RabbitMQ 版本可能会出现在每个网页的右上角,以及 Erlang 运行时的版本。

【讨论】:

【参考方案7】:

使用.NET/C# RabbitMQ Client Library获取RabbitMQ版本:

using (var connection = connectionFactory.CreateConnection())

    if (connection.ServerProperties.ContainsKey("version"))
        Console.WriteLine("Version=0",
            Encoding.UTF8.GetString((byte[])connection.ServerProperties["version"]));

输出:

版本=3.6.3

【讨论】:

【参考方案8】:

登录管理界面,在右上角可以找到版本。也可以使用以下命令查找版本

# sudo bash

# rabbitmqctl status | grep rabbit

【讨论】:

【参考方案9】:

在 debian 系统上,您可以运行:

dpkg-query --showformat='$Version' --show rabbitmq-server

【讨论】:

【参考方案10】:

我使用以下命令将输出修剪为版本,

rabbitmqctl status | grep "rabbit,\"RabbitMQ\""

输出:

  rabbit,"RabbitMQ","3.7.3",

【讨论】:

【参考方案11】:

如果你无法访问 rabbitmqctl 或者 rabbitmq-server 没有运行,在 linux 上做:

ls /usr/lib/rabbitmq/lib/

我明白了:

rabbitmq_server-3.5.6

【讨论】:

以上是关于RabbitMQ:验证rabbitmq的版本的主要内容,如果未能解决你的问题,请参考以下文章

Windows系统下安装RabbitMQ

RabbitMQ:验证rabbitmq的版本

RabbitMQ - 用户'guest'拒绝访问虚拟主机'XXX'

RabbitMQ安装

消息队列RabbitMQ

RabbitMQ 消息队列学习