RabbitMQ 是一个消息中间件,接收、存储、转发消息数据
核心概念:
(1)生产者:产生数据发送消息的程序
(2)交换机:接收来自生产者的消息并处理它接收到的消息(将消息推送到特定队列、推送到多个队列、丢弃消息)
(3)队列:RabbitMQ 内部使用的一种数据结构,一个大的消息缓冲区,仅受主机的内存和磁盘限制的约束
(4)消费者:接收消息的程序,同一个应用程序既可以是生产者又可以是消费者
RabbitMQ 6种模式:
(1)Hello World
(2)Work queues
(3)Publish/Subscribe
(4)Routing
(5)Topics
(6)RPC (Request/reply pattern)
Publish/Subscribe,Routing,Topics三种模式可以统一归为Exchange模式,只是创建时交换机的类型不一样,分别是fanout、direct、topic
名词介绍:
Broker:RabbitMQ Server 就是 Message Broker,指接收和分发消息的应用
Virtual Host:出于多租户和安全因素设计的,当多个不同的用户使用同一个RabbitMQ server提供的服务时,可以划分出多个vhost,每个用户在自己的vhost创建 exchange/queue 等
Connection:publisher/consumer 和 broker(RabbitMQ Server) 之间的 TCP 连接
Channel:Channel 是在 connection 内部建立的逻辑连接, channel 之间是完全隔离的,Channel 作为轻量级的
Connection 极大减少了操作系统建立 TCP connection 的开销
Exchange:message 到达 broker 的第一站,根据分发规则,匹配查询表中的 routing key,分发消息到 queue 中去
Queue:存储消息的消息队列
Binding:exchange 和 queue 之间的虚拟连接
安装RabbitMQ:
下载:https://www.rabbitmq.com/download.html
安装文件:若有包依赖问题 访问https://pkgs.org/
rpm -ivh erlang-21.3-1.el7.x86_64.rpm
yum install socat -y
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
开机启动:systemctl enable rabbitmq-server
启动/停止服务:systemctl start/stop rabbitmq-server
查看服务状态:systemctl status rabbitmq-server
开启web管理插件:rabbitmq-plugins enable rabbitmq_management
问题:{:query, :rabbit@hostname, {:badrpc, :timeout}} 解决方法:vim /etc/hosts 添加:主机号 主机名
访问地址: http://localhost:15672/
添加新用户admin:使用admin账号登录
(1)创建账号:rabbitmqctl add_user admin 123
(2)设置用户角色:rabbitmqctl set_user_tags admin administrator
(3)设置用户权限
set_permissions [-p <vhostpath>] <user> <conf> <write> <read>
rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"
查看用户:rabbitmqctl list_users
清除队列:rabbitmqctl reset
关闭应用:rabbitmqctl stop_app
启动应用:rabbitmqctl start_app
RabbitMQ安装
最新推荐文章于 2023-06-14 14:08:58 发布