消息中间件Borker
Rabbitmq
Activemq
Rocketmq(阿里)
Kafka
Tubemq(腾讯)
一、Rabbitmq
1.搭建虚拟机
VMware
版本:16.x
NAT网络的网段使用:192.168.64.0
编辑--虚拟网络编辑器--连接vmnet8--左下角修改 192.168.64.0
二、课前资料/ 虚拟机
centos-7-1908/centos-8-2105
已经做了基本配置
yun安装源,扩展源使用阿里服务器
安装了python、pip、ansible
添加了两个脚本文件,方便配置ip地址(ip-static固定ip/ip-dhcp自动获取ip)
1.解压centos-8-2105
2.双击 centos-8-2105.vmx 加载镜像
3.启动,按提示选择“已复制虚拟机”
4.登录用户名密码都是root
如果网卡有问题,不能设置ip
# centos 7 禁用 NetworkManager 系统服务 systemctl stop NetworkManager systemctl disable NetworkManager
# centos 8 开启 VMware 托管 nmcli n on systemctl restart NetworkManager
如果网络还有问题,可以重置vmware的虚拟网络
编辑--虚拟网络编辑器--还原默认设置
还原默认设置会删除所有的虚拟网络,重新创建,重新初始化
三、准备docker环境
1.关闭centos-8-2105
2.克隆centos-8-2105: docker-base(docker基础环境)
3.mobaxterm连接docker-base 上传文件到/root/
课前资料/DEVOps 课前资料/Docker/docker-install/ 文件夹
4.参考CSDN docker离线安装笔记,从第三步开始安装,下一步下一步。。。
5. shutdown -h now 关机
四、Docker 运行Rabbitmq
1.克隆docker-base :rabbitmq
2.设置ip
./ip-static
ip:192.168.64.140
ifconfig
3.上传rabbitmq文件镜像到/root/
DevOps课前资料/Docker/rabbit-image.gz
4.导入镜像
docker load -i rabbit-image.gz
5.启动rabbitmq
5.1.关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 重启 docker 系统服务
systemctl restart docker
5.2配置管理员用户名和密码
mkdir /etc/rabbitmq
vim /etc/rabbitmq/rabbitmq.conf
# 添加两行配置:
default_user = admin
default_pass = admin
5.3启动Rabbitmq
docker run -d --name rabbit \
-p 5672:5672 \
-p 15672:15672 \
-v /etc/rabbitmq/rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf \
-e RABBITMQ_CONFIG_FILE=/etc/rabbitmq/rabbitmq.conf \
--restart=always \
rabbitmq:management
5.4
访问管理控制台 http://192.168.64.140:15672
用户名密码是 admin
五、RabbitMQ 使用场景
1.服务解耦
mq message queue 数据吞吐量大,接收消息,让消息排队
feign调用,同步调用
mq实现异步调用,不需要等到后面消息返回再去执行别的。
六、rabbitmq六种工作模式
1.简单模式
只有一个消费者接收
交换机 空串默认是交换机
2.工作模式
多个消费者共享同一个队列。多个消费者轮询接收
设置多个服务器启动
多个消费者处理消息,当消费者在缺处理完之前,被处理掉,会被回执
1.队列持久化(在生产者这里设置)
2.消息的持久化