RabbiMQ是什么
RabbiMQ是一个开源的消息代理和队列服务器,用来通过普通协议在不同的应用之间共享数据,RabbiMQ使用Erlang语言编写(所以在安装的时候需要先安装对应的环境),RabbitMQ是基于AMQP协议的。简单的来说,就是可以通过一个API来发布消息比如使用javaAPI发布一个消息,消费者可以是Python语言监听。
- 与SpringAMOP完美整合 API丰富
- 集群模式丰富 HA模式 镜像队列
- 可靠性 可用性
RabbitMQ高性能原因
- Erlang语言最初在于交换机领域的架构模式 使RabbitMQ在Broker 之间进行数据交互的新能是非常优秀的。
- Erlang有和原生Socket一样的延迟
AMQP高级消息队列协议
具有现代特性的二进制协议。是一个提供统一消息服务的应用层标砖高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件
生产者
-server
-Virtual host
-Exchange
-Message Queue
消费者
监听 Message Queue
Server: 又称Broker 接受客户端的连接
Connection: 连接 应用程序与Broker的网络连接
Channel:网络通道 所有的操作 都是在Channel中进行 信息的消息读写 清空队列消息 什么的 就类似于数据库的session
Message: 消息 由Properties 和 Body组成。 Properties对消息修饰 优先级等
Virtual host: 虚拟地址 一个Virtual host可以有多个Exchange和Queue 在后续实际操作中 配置文件中会涉及到 可以理解为数据库中不同的user
Exchange:交换机,接受消息,根据路由key转发信息到绑定的队列
Binding:Exchange和Queue之间的虚拟连接,binding中可以包含routingkey
Routing key: 一个路由规则,虚拟机可以用它来确定䄦路由一个特定的消息
Queue:消息队列 报错小写并转发给消费者
RabbitMQ的安装与使用
官网地址: http://www.rabbitmq.com/ 网站上会有一个ERlang version
可以看到erlang和mq版本的对应关系
下载的时候需要环境和MQ版本对应 不然可能会出错。
自己安装的时候参考了很多的网上安装方式 最后成功安装的方式如下:
// erlang环境安装
yum install erlang
//我自己的安装目录 这个看个人喜好
cd /usr/local/src
//创建了一个文件夹
mkdir rabbitmq
//下载
wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
//安装
yum install rabbitmq-server-3.7.4-1.el6.noarch.rpm
//启动
systemctl start rabbitmq-server
//启动web端权限 还有很多插件 这里启动的就是可以web端操作rabbitmq
rabbitmq-plugins enable rabbitmq_management
//可以查看当前状态
rabbitmqctl status
//创建用户
rabbitmqctl add_user admin admin(可以修改为自己设置的密码)
//分配管理权限
rabbitmqctl set_user_tags admin administrator
// 也是分配权限 后边springboot使用时候有用
rabbitmqctl set_permissions -p / admin “.*” “.*” “.*”
image.png然后访问你linux系统的ip://15672
使用你自己创建的用户名 密码登陆
命令行与管控台
rabbitmqctl stop_app: 关闭应用
rabbitmqctl start_app: 启动应用
rabbitmqctl list_users: 列出所有用户
rabbitmqctl delete_user username:删除用户
rabbitmqctl clear_permissions -p vhostpath username 清除用户权限
rabbitmqctl list_user_permissions username: 列出用户权限
rabbitmqctl change_password username newpassword 修改密码
rabbitmqctl add_vhost vhostpath 创建虚拟主机
rabbitmqctl list_vhosts: 列出所有虚拟主机
rabbbitmqctl list_permissions -p vhostpath 列出虚拟机主机上所有权限
rabbitmqctl list_queues:查看所有队列信息
rabbitmqctl -p vhostpath purge_queue blue 清除某主机上的duilie
rabbbitmqctl reset: 移除所有数据 在停止后使用
rabbitmqctl join_cluster<clusternode>[--ram] 组成集群模式
rabbitmqctl cluster_status 查看集群状态
rabbitmqctl change_cluster_node_type disc|ram 修改存储形式
rabbitmqctl forget_cluster_node[--offline] 可以把不好用的节点删除 失败转移
web管控台就没啥说的了 基本上有手就能用 看不明白的地方 翻译一下 还不行的话 关机睡会
下一节记录 在springboot项目中 使用mq
网友评论