docker安装rabbitmq(docker安装rabbitmq Dockerfile)

本篇文章给大家谈谈docker安装rabbitmq,以及docker安装rabbitmq Dockerfile对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

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的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

标签列表