rabbitMq简介
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
RabbitMQ相关概念:
生产者(Producer):发送消息的应用。
消费者(Consumer):接收消息的应用。
队列(Queue):存储消息的缓存。
消息(Message):由生产者通过RabbitMQ发送给消费者的信息。
连接(Connection):连接RabbitMQ和应用服务器的TCP连接。
通道(Channel):连接里的一个虚拟通道。当你通过消息队列发送或者接收消息时,这个操作都是通过通道进行的。
交换机(Exchange):交换机负责从生产者那里接收消息,并根据交换类型分发到对应的消息列队里。要实现消息的接收,一个队列必须到绑定一个交换机。
绑定(Binding):绑定是队列和交换机的一个关联连接。
路由键(Routing Key):路由键是供交换机查看并根据键来决定如何分发消息到列队的一个键。路由键可以说是消息的目的地址。
交互流程:生产者(Producer)发送/发布消息到代理->消费者(Consumer)从代理那里接收消息。哪怕生产者和消费者运行在不同的机器上,RabbitMQ也能扮演代理中间件的角色。
详细:https://www.rabbitmq.com
安装erlang
otp_win64_22.3,由于rabbitMQ桌面端是erlang依赖。
下载页面:https://www.erlang.org/downloads
直接下载地址:http://erlang.org/download/otp_win64_23.3.exe
配置环境变量
ERLANG_HOME
C:Program Fileserl10.4
安装 rabbitmq-server
下载地址:https://www.rabbitmq.com/install-windows.html
环境变量配置
安装插件 rabbitmq
代码语言:javascript复制rabbitmq-plugins enable rabbitmq_management
启动命令
代码语言:javascript复制rabbitmq-server.bat
访问:http://localhost:15672
账号密码为:guest guest
遇到的问题:
解决方案:
1.将 C:Users用户.erlang.cookie盘用户下面的 复制一份到 C:WindowsSystem32configsystemprofile 替换掉 .erlang.cookie
2.切注意你的erlang版本是不是rabbitmq支持的,我用的rabbitmq是3.8.4所以对应的的版本应该是22.3以上,可以参考如下:
https://www.rabbitmq.com/which-erlang.html
停止命令
代码语言:javascript复制rabbitmqctl stop
相关命令:
代码语言:javascript复制启动监控管理器:rabbitmq-plugins enable rabbitmq_management
关闭监控管理器:rabbitmq-plugins disable rabbitmq_management
启动rabbitmq:rabbitmq-service start
关闭rabbitmq:rabbitmq-service stop
查看所有的队列:rabbitmqctl list_queues
清除所有的队列:rabbitmqctl reset
关闭应用:rabbitmqctl stop_app
启动应用:rabbitmqctl start_app
用户和权限设置(后面用处)
添加用户:rabbitmqctl add_user username password
分配角色:rabbitmqctl set_user_tags username administrator