消息队列中间件
概述
消息队列中间件,简单来说就是能够提供完善的一个接收数据,发送数据的一个服务的软件。这个数据可以是字符串、json亦或是其它的。可以通过消息机制保证两个毫无关联的应用平台进行通信。我们称提供数据的一方叫生产者,消费数据的一方叫消费者。基本有两种模式,点对点(p2p)、发布订阅(pub/sub)。目前流行开源的中间件有RabbitMQ、RocketMQ、Kafka、ActiveMQ。
作用
- 异步: 当生产者发送消息到mq,不需要关心该消息何时何地被消费,当然这只要求该消息不是需要即时处理的需求。
- 解耦: 解耦是比较容易理解的。因为消费者和生产者没有产生依赖关系。即时一方换成另一个程序也没有关系,只要消息准确即可。
- 削峰: 在某一时刻程序的访问量剧增,但是只是偶尔特别情况下。使用消息机制可以不会因为负载而导致程序直接崩溃
RabbitMQ
介绍
rabbitmq是用erlang语言开发,实现了AMQP(Advanced message queuing protocol),当然,他还支持其它的比如STOMP、MQTT等协议。这也是它的强大之处,并且支持大多数流行语言。其持久化、扩展性、高可用,以及完善的管理界面等优点导致它到现在也是一款流行的消息中间件。
安装
在Windows下进行rabbitMQ的安装。
第一步: 软件安装
如果安装rabbitMQ首先安装基于erlang语言支持的OTP软件,然后在下载rabbitMQ软件进行安装(安装过程都是下一步,在此不在说了)
第二步: 环境变量配置
如果上面完成安装以后要进行环境变量的配置,首先配置ERLANG_HOME如下图(变量值就是你按照otp软件的路径)
然后在配置RABBITMQ_SERVER如下图(变量值是rabbitMQ的安装路径)
最后进行path的配置如下图(path的值为;%ERLANG_HOME%\bin;%RABBITMQ_SERVER%\sbin;注意是追加)
第三步: 启动监控管理器
找到你安装rabbitMQ的路径,然后切换到sbin的文件夹
输入rabbitmq-plugins enable rabbitmq_management命令来启动监控管理器
然后在浏览器输入http://localhost:15672用户名和密码默认都为guest。
这样一来我们进安装好了。
第四步: rabbitMQ常用的命令
启动监控管理器:rabbitmq-plugins enable rabbitmq_management
关闭监控管理器:rabbitmq-plugins disable rabbitmq_management
启动rabbitmq:rabbitmq-service start
守护进程运行:rabbitmq-server -detached
关闭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
新增虚拟主机:rabbitmqctl add_vhost vhost_name
将新虚拟主机授权给新用户:rabbitmqctl set_permissions -p vhost_name username ‘.’ '.’ ‘.*’
角色说明
none 最小权限角色
management 管理员角色
policymaker 决策者
monitoring 监控
administrator 超级管理员