记录一下安装过程,新手上路请慢行。
一 docker 的安装
官网地址
找到对应系统 的安装说明(拿centos系统来说)
# 移除旧版本docker
# 移除旧版本docker
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
# 配置docker yum源 加快安装。
sudo yum install -y yum-utils
sudo yum-config-manager \
--add-repo \
http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
# 安装 最新 docker
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
下边是官网的
# 启动& 开机启动docker; enable + start 二合一
systemctl enable docker --now
# 配置加速 在重起
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://docker.m.daocloud.io"
]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker
# 关闭
systemctl stop firewalld
# 禁止开机启动防火墙
systemctl disable firewalld
执行 docker -v 出现下图就说明安装好了
安装过程中出出问题 如下操作
1.先清理一下yum安装缓存问题
yum clean all
2.将服务器上的软件包信息进行本地缓存,提高搜索安装软件的速度
yum makecache
3.重新执行docker安装命令
sudo yum install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
二 docker compsoe 安装rabbitmq
准备docker-compose的yaml文件
暴露端口肯挂载到指定目录,同时创建一个rabbit用户
name: dev-rabbit
services:
rabbit:
image: rabbitmq:3-management
restart: always
container_name: rabbitmq
ports:
- "5672:5672"
- "15672:15672"
- "25672:25672"
- "4369:4369"
environment:
- RABBITMQ_DEFAULT_USER=rabbit
- RABBITMQ_DEFAULT_PASS=rabbit
- RABBITMQ_DEFAULT_VHOST=dev
volumes:
- rabbit-data:/var/lib/rabbitmq
- rabbit-app:/etc/rabbitmq
- /etc/localtime:/etc/localtime:ro
volumes:
rabbit-data:
rabbit-app:
比如这个文件保存为dev-rabbit-docker.yaml,上传到Centos的服务的一个目录在这个dev-rabbit-docker.yaml文件所在目录执行下边个命令
docker compose -f dev-rabbit-docker.yaml up -d
这个命令就会去拉取我们指定版本的rabbitmq带管理界面的版本,并启动
docker compose -f dev-rabbit-docker.yaml up -d
在访问虚拟机的ip+15672 就可以看到rabiitmq的管理界面了。
如果需要手动独立安装
手动安装时需要先安装 Erlang ,它的版本和rabbit版本有关系,
RabbitMQ: One broker to queue them all | RabbitMQ
手动安装这里就不在描述,可以参考大佬的博客
rabbitmq教程_rabbitmq环境变量设置-优快云博客
三 rabbitmq 一些基础知识
端口说明:
概念介绍
消息队列有三个核心要素: 消息生产者、消息队列、消息消费者;
生产者(Producer):发送消息的应用;(java 程序,也可能是别的语言写的程序)
消费者(Consumer):接收消息的应用;(java 程序,也可能是别的语言写的程序)
代理(Broker):就是消息服务器,RabbitMQ Server 就是 Message Broker;
连接(Connection):连接 RabbitMQ 服务器的 TCP 长连接;
信道(Channel):连接中的一个虚拟通道,消息队列发送或者接收消息时,都是通过信道 进行的
虚拟主机(Virtual host):一个虚拟分组,在代码中就是一个字符串,当多个不同的用 户使用同一个 RabbitMQ 服务时,可以划分出多个 Virtual host,每个用户在自己的 Virtual host 创建 exchange/queue 等;(分类比较清晰、相互隔离)
交换机(Exchange):交换机负责从生产者接收消息,并根据交换机类型分发到对应的消 息队列中,起到一个路由的作用;
路由键(Routing Key):交换机根据路由键来决定消息分发到哪个队列,路由键是消息 的目的地址;
绑定(Binding):绑定是队列和交换机的一个关联连接(关联关系);
队列(Queue):存储消息的缓存;
消息(Message):由生产者通过 RabbitMQ 发送给消费者的信息;(消息可以任何数据, 字符串、user 对象,json 串等等)
RabbitMQ的交换机
1、Fanout Exchange(扇形)
2、Direct Exchange(直连)
3、Topic Exchange(主题)
4、Headers Exchange(头部)
如果需要看 队列的说明,官网如下:
交换机-帮队列
在管理界面来 点对点发送消息(Direct Exchange)
创建direct交换机Add a new exchange:direct-exchange00
- 创建队列Add a new queue:queue01
- 交换机与队列绑定Bindings
绑定好,之后可就可在这个交换机里发送一条消息了
这里出现成功发出
然后我们可以在队列里去获取这条消息。
到此 点对点的发消息和获取消息就以串起来了。
也可在统计面板看到我们发的消息统计数据。
到此docker 安装 rabbtimq 完成,且初步体验功能也正常。