docker安装rabbitmq(docker安装rabbitmq Dockerfile)
本篇文章给大家谈谈docker安装rabbitmq,以及docker安装rabbitmq Dockerfile对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、RabbitMQ详解1.安装及使用
- 2、消息中间件之RabbitMQ
- 3、rabbitMQ之安装和配置(一)
- 4、Windows下:RabbitMQ完美安装全流程(亲测有效)
- 5、docker nginx、rabbitmq、redis部署
- 6、Docker安装RabbitMQ并设置用户名密码
RabbitMQ详解1.安装及使用
brew install rabbitmq
Homebrew是Mac的软件包管理器,如果电脑上没有Homebrew可以通过下面的指令安装,官网地址 Homebrew 。
/usr/bin/ruby -e "$(curl -fsSL )"
/usr/local/etc/rabbitmq
前好漏信台启动 :rabbitmq-server
后台启动 :rabbitmq-server -detached
rabbitmqctl status
前台关闭 :control c
后台关闭 :rabbitmqctl stop
可以通过rabbitmqctl命令来进行创建、删除、查看用户、分配用户权限等操作,更详细的操作列表可以查阅官方文档 rabbitmqctl官方文档 ,或通过 rabbitmqctl --help 来查看。
RabbitMQ为了控制用户的权限,一共为搜举用户分配了五种角色,如下所示
RabbitMQ的权限控制是以vhost为单元的,可以把vhost暂时理解为一个权限控制组,后面会进行详细解释,详细的权限管友轮理可以查阅官方文档 Access Control in RabbitMQ 。
[img]消息中间件之RabbitMQ
JMS:Java Message Service,java消息服务,是一个消息服务的标准或者说是规范,允许应用程序组件基于JavaEE平台创建、发送、接收和读取消息。它使分布式通信耦合度更低,消息服务更加可靠以及异步性。
JMS是java的消息服务,JMS的客户端之间可以通过JMS服务进行异步的消息传输。
p2p:点对点发送,一个消息只能被消费一次
涉及:
消息队列(Queue)
发送者(Sender)
接收者(Receiver)
每个消息都被发送到一个特定的队列,接收者从队列中获取消息。队列保留着信息,直到它们被消费或超时。
示意图:p2p示意图
特点:
Pub/Sub:发布订阅,一个消息可以被消费多次
涉及角色:
主题(Topic)
发布者(Publisher)
订阅者(Subscriber)
客户端将消息发送到主题。多个发布者将消息发送到Topic,系统将这些消息传递给多个订阅者。
示意图:Pub/Sub示意图
特点:
MQ:消息中间件(MOM:Message Orient middleware),消息或咐队列
作为系统间通信的必备技术,低耦合、可靠传输、流量控制、最终一致性
实现异步消息通信
Apache下
完全支持Java的JMS协议
消息模式:1、点对点 2、发布订阅
Erlang语言实现的开源的MQ中间件,支持多种协议
主要的通信协议是AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用协议的一个开放标准,为面向消息的中间件设计。
Apache下开源项目
高性能分布式消息队列,一般海量数据传输,大数据部门用
单机吞吐量:10w/s
阿里 贡献给了Apache
参考了Kafka实现基于Java 消息中间件
消息传输最快
RabbitMQ是一个开源的AMQP实现,服务端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。
消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
涉及角色:
可以基于Docker安装RabbitMQ,记住其端口:
15672:网页版可视化服务器数据
5672:客户端连接的端口号
点对点消息
一个消息只能消费一次
只需要队列就可以,不需要交换机
消息发送者和消息接收者者可以不同时在线
RabbitMQ特逗团仿色就在于Exchange,主要有以下类型:
fanout:只要有消山纤息就转发给绑定的队列,不会进行消息的路由判断
direct:会根据路由匹配规则,将消息发送到指定队列中,注意路由规则不支持特殊字符
topic:会根据路由匹配规则,将消息发送到指定队列中,注意路由规则支持特殊字符,比如:* #
rabbitMQ之安装和配置(一)
向/etc/yum.repos.d/下添加rabbitmq.repo文件
yum update -y
yum install -y make gcc gcc-c++ m4 openssl openssl-devel ncurses-devel unixODBC unixODBC-devel java java-devel
yum install socat logrotate -y
yum install erlang rabbitmq-server -y
systemctl start rabbitmq-server
RabbitMQ启动出错:- unable to connect to epmd on xxxx: timeout (timed out)
因为本机主机名到行饥IP地址的解析对应不起来;
192.168.100.251 test-web2
保存退出,再次启动
设置RabbitMQ开机自启动:
systemctl enable rabbitmq-server
RabbitMQ其他操作:
rabbitmqctl status
rabbitmqctl stop
systemctl restart rabbitmq-server
/etc/rabbitmq/rabbitmq.conf
rabbitmqctl : rabbitmq的客户端,用来连接管理rabbitmq;
rabbitmq-env :配置环档孙返境变量的管理凯裂者;
rabbitmq-plugins:rabbitmq后台插件管理;
rabbitmq-server: rabbitmq守护进程;
查看状态信息
1.启用网页版后台管理插件:
rabbitmq-plugins enable rabbitmq_management
2.新建一个用户名为admin,密码为admin的管理员,并授予管理员(administrator)权限。
rabbitmqctl add_user admin admin
rabbitmqctl set_user_tags admin administrator
3.设置admin可以使用的虚机权限。
添加 admin 虚拟机
rabbitmqctl add_vhost admin
设置admin可以使用的虚机admin权限
rabbitmqctl set_permissions -p admin admin ". " ". " ". "
3.1用户管理
查看所有用户
rabbitmqctl list_users
添加一个用户
rabbitmqctl add_user zhaobl 123456
配置权限
rabbitmqctl set_permissions -p "/" zhaobl ". " ". " ". "
查看用户权限
rabbitmqctl list_user_permissions zhaobl
设置tag
rabbitmqctl set_user_tags zhaobl administrator
删除用户(安全起见,删除默认用户)
rabbitmqctl delete_user guest
4.插件管理:
插件列表:
rabbitmq-plugins list
启动插件:
rabbitmq-plugins enable XXX (XXX为插件名)
停用插件:
rabbitmq-plugins disable XXX
5.打开后台web管理界面: ,刚才我们设置了admin用户,所以可以使用admin登录,也可以使用默认账号和密码都是guest登录。进入管理界面后可以看到:
7.其他配置
我们可以到官网地址: ,了解RabbitMQ的性能优化方面的配置。
使用Docker安装RabbitMQ
首先,我们得安装docker环境,docker环境的安装本站后面会有文章介绍,本文假设你的机器上已经安装好了docker环境。
先拉取RabbitMQ镜像:
docker pull rabbitmq:3.8.1-management
然后查看镜像:
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
rabbitmq 3.8.1-management 36ed80b6a1b1 5 weeks ago 180MB
然后运行容器:
docker run --name rabbitmq -d -p 5672:5672 -p 15672:15672 -v /data:/var/lib/rabbitmq rabbitmq:3.8.1-management
最后,使用docker ps查看运行的容器。
这样,一个RabbitMQ的docker环境就装好了。
RabbitMQ技术入门与实战
Windows下:RabbitMQ完美安装全流程(亲测有效)
1.确保电脑环境干净,彻底卸载erlang和rabbitmq环境的详细流程
Next
Next -- Install -- Finish
1.运行 -- 输入sysdm.cpl
2.高级 -- 环境变量 -- 新建 -- 在path中配置
1.管理员运行rabbitmq-server-3.8.16.exe
2.Next
1.管理员身份运行命令提示符,cd到rabbitmq安装目录下的sbin文件夹下
2.输入rabbitmq-service install
3.输入rabbitmq-service enable 让服务准备就绪
4.输轿答入rabbitmq-service start 启动服务(可能报错,也可能不会)
这时候在本地服务中就可以查看RabbitMQ服务已经在运行
到这里还不够,还有一些需要查看的
5.输入rabbitmqctl status,会有以下报错
6.查了网上的方法,打开RabbitMQ安谈帆卖装目录的sbin文件夹下的rabbitmq-env.bat找到最后面进行如下编辑
set FEATURE_FLAGS_FILE=
set ENABLED_PLUGINS_FILE=
set LOG_BASE=
set MNESIA_BASE=
set PLUGINS_DIR=
set SCRIPT_DIR=
set SCRIPT_NAME=
set TDP0=
set HOMEDRIVE=(填入随便一个文件夹路径)我放在了rabbitmq的安装目录下
10.将.erlang.cookie文件复制到sbin文件夹和目录C:\Windows\System32\config\systemprofile中,含逗保证唯一,重新启动服务,输入rabbitmqctl status 继续报错
打开浏览器,输入 ,默认用户名密码都是guest,即可登录。
docker nginx、rabbitmq、redis部署
1.在服务器下首先安装docker
2.docker nginx部署:
[root@cs007 hs]# docker pull nginx
[root@cs007 hs]# docker run --name nginx-test -p 8081:80 -d nginx
[root@cs007 hs]# docker ps -a -n 1
[root@cs007 hs]# curl localhost:8081
外网访问:服务器地址:8081/nginx
docker 部署mysql
docker pull registry.cn-hangzhou.aliyuncs.com/sqqdcl/db:v5
docker run -itd --name mysql-0331 -p 3306:3306 -v /opt/mysql/data:/var/lib/mysql -eMYSQL_ROOT_PASSWORD=sq registry.cn-hangzhou.aliyuncs.com/sqqdcl/db:v5
docker
ps或 docker ps-a或 docker ps-a--no-trunc
docker inspect mysql
1.mkdir -p /opt/mysql/升弯data
docker pull registry.cn-hangzhou.aliyuncs.com/纤笑孙sqqdcl/db:v5
docker run -itd --name mysql-0331 -p 3307:3306 -v /opt/mysql/毁链data:/var/lib/mysql -eMYSQL_ROOT_PASSWORD=sq registry.cn-hangzhou.aliyuncs.com/sqqdcl/db:v5
docker ps或 docker ps-a或 docker ps-a--no-trunc
docker inspect mysql
PS C:\Users\Administrator docker exec -it e988fbe43744 /bin/bash
root@e988fbe43744:/docker-entrypoint-initdb.d# mysql -psq
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.31 MySQL Community Server (GPL)
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql exit
2.rabbitmq部署
mkdir -p /opt/rabbitmq/data
docker pull rabbitmq:3.8.3-management
docker run -itd--name rabbitmq0401 -p5672:5672 -p15672:15672 -p15692:15692 -v /opt/rabbitmq/data:/var/lib/rabbitmq -eRABBITMQ_DEFAULT_USER=guest -eRABBITMQ_DEFAULT_PASS=guest rabbitmq:3.8.3-management
3.redis部署
mkdir -p /opt/redis/data
docker pull registry.cn-hangzhou.aliyuncs.com/sqqdcl/redis
docker run -itd --name redis-0401 -p 6380:6379 -v /opt/redis/data:/data -v /etc/localtime:/etc/localtime:ro registry.cn-hangzhou.aliyuncs.com/sqqdcl/redis
docker run -itd --name redis-0401 -p 6380:6379 -v /opt/redis/data:/data registry.cn-hangzhou.aliyuncs.com/sqqdcl/redis
Docker安装RabbitMQ并设置用户名密码
1. 地址访问不到
这是因拿此为我们演示的是安装在云服务器中的docker中,我们需要去云服务器的控制台中的安全组把15672端口打开,如果是安装的本地的docker就没有这消渣迅个问题。
2. 如文章开头图片所示,我们没有 Username 和 Password
这是因为要在rabbitmq中添加用户
这时候在浏览器中输入 ip:15672 用刚才设置的用户名和密码就可以登入了
(注意!本次演示的安装设备是云服务器,梁逗后面在浏览器中访问时地址中的ip要注意用云服务的公网ip)
关于docker安装rabbitmq和docker安装rabbitmq Dockerfile的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。