如何在 Windows 上安装 RabbitMQ?
4 回答
从完整的捆绑包安装
捆绑 zip 文件包含下一节中列出的所有文件,包括 Erlang 系统安装程序和 RabbitMQ 代理二进制分发、.Net 客户端以及 Java librabbitmq 客户端库的存档。[ http://www. rabbitmq.com/download.html]
- 安装 Windows erlang5.7.4 [otp_win32_R13B03]。
- 从下载页面下载 rabbitmq-server-windows-2.0.0.zip。
3.zip文件中包含一个名为rabbitmq_server-2.0.0的目录。您应该将此文件夹解压缩到适合应用程序文件的位置,例如 C:\Program Files\RabbitMQ。
4.一旦文件被成功解压,你应该会得到一个类似于 C:\Program Files\RabbitMQ\rabbitmq_server-2.0.0 的结构。
- 设置环境变量 ERLANG_HOME 指向你的 Erlang 目录(例如 C:\Program Files\erl5.7.4)
6.默认 RABBITMQ_BASE 路径为 windows C:\Documents and Settings\User\Application Data\RabbitMQ。您所有需要的详细信息(例如日志文件等)都存储在此目录中。
将服务器作为应用程序运行
1.rabbitmq_server-2.0.0\sbin,双击rabbitmq-server.bat文件。
将服务器作为服务运行
1.以管理员身份登录,在安装broker的sbin目录下打开命令shell(cmd.exe)。通过执行安装服务
rabbitmq-service.bat 安装
2.确保名称为 RABBITMQ_SERVICENAME 的服务现在出现在服务控制面板 (services.msc) 中。
有关更多详细信息,请访问http://www.rabbitmq.com/install.html
RabbitMQ 旨在构建在 Unix 机器上(我们经常使用各种 Linux 发行版和 OSX)。社区也在 FreeBSD 上进行测试。
也就是说,当然可以在 Windows 上构建,但您需要一个类似 POSIX 的环境。到目前为止,最简单的方法是使用 cygwin:
- 从这里安装最新的 Erlang ,
- 从这里获取 Cygwin 安装程序,
- 运行它来安装基础系统;确保您也有
make
,libxslt
/xlstproc
和mercurial
选择;如果您忘记了什么,您可以安全地重新运行安装程序以获取丢失的程序; - 更新您的 PATH 以包含 python 和 erl (因此,添加类似
C:\Program Files\erl5.8.3\bin
andC:\Python27\bin
的内容;当然,您的路径可能会有所不同);通过运行检查一切是否正常python
,erl
- 通过 Mercurial获取 RabbitMQ源代码(您还需要codegen );
- 从 cygwin shell,
make
在rabbitmq-server
目录中运行。
最后两个步骤是正常的 Unix 安装过程。有关详细信息,请参阅官方说明。
另外,请注意,您可能必须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 代理服务。
转到Google Tech Talks 中的此幻灯片演示,并查看幻灯片 17 上的图表。这就是您将如何在一个集群中拥有 4 台服务器运行 RabbitMQ 来为本地客户端提供服务,其中本地可能是同一地理区域中的多个数据中心中的一个. 本地流量不会穿过集群,但应用程序不需要做任何特别的事情来跨集群发送/接收消息。
幻灯片 22 总结了“让 Erlang 消失”。您无需学习任何相关知识即可获得 Erlang 的所有好处。只需使用 AMQP 消息传递和许多进程。告别线程。
不要打扰。显然,Cygwin“以某种方式”是可能的,但我也放弃了,因此失去了兴趣。这是根植于 Erlang 文化的一个常见问题,它似乎并不真正了解跨平台开发。