Windows下安装和配置RabbitMQ
Windows下安装和配置RabbitMQ
RabbitMQ是由Erlang语言开发,基于AMQP(Advanced Message Queuing Protocol,高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。
RabbitMQ官方地址: http://www.rabbitmq.com/
Windows下安装包下载: RabbitMQ3.8.9_Erlang23.0.zip
开发中消息队列通常应用于以下场景
任务异步处理
将不需要同步处理并且耗时较长的操作由消息队列通知消息消费方进行异步处理,这种处理方式能够大大的节省服务器请求响应时间,从而提高了终端用户的体验和系统的吞吐量。
应用程序解耦合
消息队列相当于一个中介,生产方和消费方通过消息队列交互,这样可以将应用程序进行解耦合。
削峰填谷
在某些场景下可能会有在一定时间段内系统的高并发,例如抢票或者秒杀系统的订单处理,短时间内可能会有每秒上万次的数据库并发写入,平时可能只有每秒数十次的并发量;而我们的数据库可能只能够支撑每秒上千次的并发写入,为了防止数据库因高峰期的短时间内的高并发量而宕机,这时使用消息队列可以按照系统自身的承受能力来限制数据库写入的并发量来避免数据库宕机。这样一来高峰期产生的数据就会被积压在消息队列中,高峰就被削掉了(“削峰”);同时因为消息的积压,在高峰期过后的一段时间里,消息消费的速度还会维持在当前水平,直到被积压的消息被消费完,这就叫做”填谷“。
安装Rabbit MQ
正如上面说的RabbitMQ是由Erlang语言开发的,所以在安装RabbitMQ之前我们需要先安装Erlang。
NOTEs:每个版本的RabbitMQ都对Erlang的版本有一定的要求,具体的版本支持的信息可以在以下页面查看:
RabbitMQ Erlang Version Requirement: https://www.rabbitmq.com/which-erlang.html
本文安装的RabbitMQ为V3.8.9, Erlang支持的版本为22.3-23.X。
安装Erlang
下载地址: https://www.erlang.org/downloads, 本文选择OTP 23.0
设置ERLANG_HOME环境变量
新建系统环境变量ERLANG_HOME:
将ERLANG_HOME追加至PATH:
打开命令行窗口,键入erl
Erlang安装成功。
安装Rabbit MQ
下载地址:http://www.rabbitmq.com/download.html
exe安装地址(V3.8.9):https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-3.8.9.exe
解压缩安装地址(V3.8.9):https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.8.9/rabbitmq-server-windows-3.8.9.zip
本文采用的exe安装,版本为rabbitmq-server-3.8.9.exe,安装步骤比较简单直接下一步就行。exe安装会自动配置系统服务并且为自动启动项,如果无需系统服务可选择使用压缩包解压缩即可。
设置RABBITMQ_SERVER环境变量
新建系统环境变量RABBITMQ_SERVER:
将RABBITMQ_SERVER追加至Path:
启用RabbitMQ管理插件
RabbitMQ的安装包默认是没有启用任何插件的,所以我们需要运行以下命令来启用RabbmitMQ的管理插件
rabbitmq-plugins.bat enable rabbitmq_management
出现以上页面说明管理插件启用成功,需要重启RabbitMQ服务后生效。
在系统服务中重新启动RabbitMQ服务后,浏览器中访问http://localhost:15672/
输入默认的用户名和密码(guest/guest)即可登陆至管理页面创建自己的Queue。
至此在Windows环境下安装和部署RabbitMQ完成。
如果不希望通过服务来启停RabbitMQ可以使用安装%RABBITMQ_SERVER%\sbin下的rabbitmq-server.bat来启动RabbitMQ,如果通过命令行窗口通过rabbitmq-server.bat来启动RabbitMQ,可以带上启动参数“-detached”,这样可以让RabbitMQ在后台运行而不影响当前命令行窗口的其他操作。
rabbitmq-server.bat -detached
如果是用解压缩的方式安装的RabbitMQ,但是要用服务来管理RabbitMQ的启停,可以通过以下命令来安装服务:
rabbitmq-service.bat install
rabbitmqctl.bat命令可以管理正在运行的RabbitMQ,命令格式如下:
rabbitmqctl [--node <node>] [--timeout <timeout>] [--longnames] [--quiet] <command> [<command options>]