【发布时间】:2010-04-05 23:11:25
【问题描述】:
如何在 Windows 上安装 RabbitMQ?
【问题讨论】:
-
您可能想要添加更多关于您正在做什么以及到目前为止您已经尝试过什么的详细信息。您有几个非常相似的问题,这将有助于区分它们。
-
见this教程。
标签: windows build cygwin rabbitmq
如何在 Windows 上安装 RabbitMQ?
【问题讨论】:
标签: windows build cygwin rabbitmq
从一个完整的包安装
捆绑 zip 文件包含下一节中列出的所有文件,包括 Erlang 系统安装程序和 RabbitMQ 代理二进制分发、.Net 客户端以及 Java librabbitmq 客户端库的存档。[http://www.rabbitmq.com/download.html]
3.zip文件中包含一个名为rabbitmq_server-2.0.0的目录。您应该将此文件夹解压缩到适合应用程序文件的位置,例如 C:\Program Files\RabbitMQ。
4.一旦文件被成功解压,你应该会得到一个类似于 C:\Program Files\RabbitMQ\rabbitmq_server-2.0.0 的结构。
6. 默认情况下,Windows C:\Documents and Settings\User\Application Data\RabbitMQ 的 RABBITMQ_BASE 路径。您所有需要的详细信息(例如日志文件等)都存储在此目录中。
将服务器作为应用程序运行
1.rabbitmq_server-2.0.0\sbin 并双击rabbitmq-server.bat文件。
将服务器作为服务运行
1. 以管理员身份登录并在安装代理的 sbin 目录中打开命令 shell (cmd.exe)。通过执行安装服务
rabbitmq-service.bat 安装
2.确保名称为 RABBITMQ_SERVICENAME 的服务现在出现在服务控制面板 (services.msc) 中。
【讨论】:
RabbitMQ 旨在构建在 Unix 机器上(我们经常使用各种 Linux 发行版和 OSX)。社区也在 FreeBSD 上进行测试。
也就是说,当然可以在 Windows 上构建,但您需要一个类似 POSIX 的环境。到目前为止,最简单的方法是使用 cygwin:
make、libxslt/xlstproc 和mercurial;如果您忘记了什么,您可以安全地重新运行安装程序以获取丢失的程序;C:\Program Files\erl5.8.3\bin 和 C:\Python27\bin 的内容;当然,您的路径可能会有所不同);通过运行 python 和 erl 检查一切是否正常,rabbitmq-server 目录中运行 make。最后两个步骤是正常的 Unix 安装过程。详情请见官方instructions。
另外,请注意,您可能必须从普通命令提示符运行代理 (scripts/rabbitmq-server.bat),而 不是 cygwin shell。这是因为 Erlang 和 Cygwin 认为根目录是 / 之间的差异。
如果您有任何问题,请发送消息到rabbitmq-discuss 邮件列表。开发人员会重点回答那里发布的所有查询。
【讨论】:
除非您打算开发 Erlang 代码,否则这样做并没有多大意义,在这种情况下,您应该花一两天时间学习 Erlang 的基础知识。之后就不会那么麻烦了,因为 RabbitMQ 是用 Erlang 编写的。
我在 Linux 上构建了 Erlang,但在 Windows 上我只是安装了二进制包,因为它对我来说只是一个测试/开发环境。在 Linux 上,我在弄清楚如何安装二进制文件时遇到了问题,而在 Windows 上,我花了一段时间才弄清楚将配置文件放在哪里,以便我可以加载插件。
无论如何,您都不会在 Windows 或 Linux 上运行 RabbitMQ,因为它不能那样工作。与许多 Erlang 应用程序一样,RabbitMQ 在云(您的私有云)上运行,并且确实希望成为由多个服务器组成的集群的一部分,这些服务器都运行一个共享的 MQ 代理服务。
转到slide presentation from Google Tech Talks 并查看幻灯片 17 上的图表。这就是您将如何在一个集群中拥有 4 台运行 RabbitMQ 的服务器来为本地客户端提供服务,其中本地可能是同一地理区域中的多个数据中心中的一个.本地流量不会跨集群,但应用程序无需执行任何特殊操作即可跨集群发送/接收消息。
幻灯片 22 总结了“让 Erlang 消失”。您无需学习任何相关知识即可获得 Erlang 的所有好处。只需使用 AMQP 消息传递和许多进程。告别线程。
【讨论】:
不要打扰。显然,Cygwin“以某种方式”是可能的,但我也放弃了,因此失去了兴趣。这是根植于 Erlang 文化的普遍问题,似乎并不真正了解跨平台开发。
【讨论】: