目录
概念
Rabbit 是一个消息中间件,它可以接受并转发消息。你可以把它当做一个快递站点,当你要发送一个包裹时,你把你的包裹放到快递站,快递员最终会把你的快递送到收件人那里,按照这种逻辑RabbitMQ是一个快递站,一个快递员帮你传递快件。RabbitMQ与快递站的区别在于,它不处理快递而是接受,存储和转发消息!
四大概念
生产者
产生数据,发送消息的程序是生产者!
交换机
交换机是RabbitMQ非常重要的一个部件,一方面它接受来自生产者的消息,另一方面它将消息推送到队列中。交换机必须确切知道如何处理它接受到的消息,是将这些消息推送到特定队列还是多个队列,亦或者是把消息丢弃,这个得有交换机类型决定
队列
队列是RabbitMQ 内部使用的一种数据结构,尽管消息流经RabbitMQ和应用程序,但它们只能存储在队列中。队列仅受主机的内存和磁盘限制的约束,本质上是一个大的消息缓冲区。许多生产者可以将消息发送到一个队列,许多消费者可以尝试从一个队列接受消息,这就是我们使用队列的方式。
消费者
消费与接受具有相似的含义。消费者大多时候是一个等待接受消息的程序。请注意生产者,消费者和消息中间件很多时候不是在一个机器上,同一个应用程序即可以是生产者又可以是消费者。
六大模式
简单模式(Hello World!)、 工作模式(Work queues)、发布订阅模式(Publish/SubScribe)
、路由模式(Routing)、 主体模式(Topics)、发布确认模式(Publisher Confirms)
工作原理
运行流程
下载
本次采用的是CentOS7, RabbitMQ3.8.8 版本
1.进入RabbitMQ,点击Get Started
2、查看当前RabbitMq所需要Erlang的版本支持
3.下载Erlang(Erlang and Elixir Packages Download - Erlang Solutions)
4.下载RabbitMQ
找到发行日记
找到对应的版本,点击release notes
向下找到Assets(资产),点击下载即可
安装
1、上传对应rpm包到linux中,本次使用的是FinalShell
2、安装文件
-- 1、安装Erlang
rpm -ivh --force --nodeps esl-erlang_23.0-1_centos_7_amd64.rpm
-- 2、安装socat
yum install socat -y
-- 3、安装RabbitMQ
rpm -ivh rabbitmq-server-3.8.8-1.el7.noarch.rpm
-- 4、配置开机自启
chkconfig rabbitmq-server on
-- 5、启动RabbitMQ
/sbin/service rabbitmq-server start
3、安装web管理界面
-- 安装web 界面
rabbitmq-plugins enable rabbitmq_management
-- 查看端口是否开放
firewall-cmd --zone=public --list-ports
-- 开放15672 端口
firewall-cmd --zone=public --add-port=15672/tcp --permanent
-- 立即生效
firewall-cmd --reload
4、访问web管理界面 (localhost:15672)
5、添加一个账号
-- 1、添加用户
rabbitmqctl add_user Username Password
-- 2、设置用户分配操作权限
- administrator 可以登录控制台、查看所有信息,可以对rabbitmq 进行管理
- monitoring 监控者 登录控制台、查看所有信息
- policymaker 策略制定者 登录控制台、指定策略
- managment 普通管理员 登录控制台
rabbitmqctl set_user_tags Username administrator
-- 3、赋予权限
rabbitmqctl set_permissions -p "/" Username ".*" ".*" ".*"
-- 3、修改密码
rabbitmqctl change_password Username NewPassword
-- 4、查看用户清单
rabbitmqctl list_users
6、登录
Docker 安装 RabbitMQ
1、安装docker
-- 1、卸除旧版本
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
-- 2、安装需要安装的安装包
yum install -y yum-utils
-- 3、设置镜像仓库
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
-- 4、更新yum 软件包的索引
yum makecache fast
-- 5、安装docker 相关内容
yum install docker-ce docker-ce-cli containerd.io
-- 6、启动docker
systemctl status docker
-- 7、查看docker 是否安装成功
docker version
2、官网提供的基本下载方式(Downloading and Installing RabbitMQ — RabbitMQ)
- 1、3.9 最新版本的下载
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.9-management
- 2、3.8 版本下在
docker run -it --rm --name rabbitmq -p 5672:5672 -p 15672:15672 rabbitmq:3.8-management
3、docker 官网的详细信息(Docker Hub)
docker run -di --name myRabbitMQ -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin123 -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 1883:1883 rabbitmq:management
4、查看图形化界面