RabbitMQ——Rabbit Message Queue的简写,但不能仅仅理解其为消息队列,消息代理更合适。RabbitMQ 是一个由 Erlang 语言开发的AMQP(高级消息队列协议)的开源实现。 参考自彭东稳的博客 单机版 访问 http://ip:15672,输入guest/guest,进入rabbitmq界面简介(天天向上卡索)
RabbitMQ作为一个消息代理,主要和消息打交道,负责接收并转发消息。
RabbitMQ提供了可靠的消息机制、跟踪机制和灵活的消息路由,支持消息集群和分布式部署。适用于排队算法、秒杀活动、消息分发、异步处理、数据同步、处理耗时任务、CQRS等应用场景docker部署
# --hostname my-rabbit 指定主机名
# -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password 设置默认的用户名/密码
docker run -tid --hostname my-rabbit --name some-rabbit -e RABBITMQ_DEFAULT_USER=user -e RABBITMQ_DEFAULT_PASS=password rabbitmq
docker部署集群
git clone https://github.com/bijukunjummen/docker-rabbitmq-cluster.git
cd docker-rabbitmq-cluster/cluster
docker-compose up -d # 如果docker daemon和docker-compose没有安装,要先安装
Pulling rabbit1 (bijukunjummen/rabbitmq-server:latest)...
latest: Pulling from bijukunjummen/rabbitmq-server
8d30e94188e7: Pull complete
.
.
.
Digest:
sha256:a6bbb268de87d09d538152450b77835a27693039ab079785a7b72f595bef18a6
Status: Downloaded newer image for bijukunjummen/rabbitmq-server:latest
Creating cluster_rabbit1_1
Creating cluster_rabbit2_1
Creating cluster_rabbit3_1
docker ps
CONTAINER ID IMAGE COMMAND
CREATED STATUS PORTS
NAMES
ba5f665bb213 bijukunjummen/rabbitmq-server "/bin/sh -c /opt/rabb"
10 minutes ago Up 10 minutes 4369/tcp, 9100-9105/tcp, 15672/tcp,
25672/tcp, 0.0.0.0:5674->5672/tcp cluster_rabbit3_1
b9466e206b2b bijukunjummen/rabbitmq-server "/bin/sh -c /opt/rabb"
10 minutes ago Up 10 minutes 4369/tcp, 9100-9105/tcp, 25672/tcp,
0.0.0.0:5673->5672/tcp, 0.0.0.0:15673->15672/tcp cluster_rabbit2_1
b733201aeadf bijukunjummen/rabbitmq-server "/bin/sh -c /opt/rabb"
10 minutes ago

多机版
假设有三台服务器,IP分别为10.106.136.7,10.106.136.8,10.106.136.9
三台服务器上docker-compose配置文件分别为
rabbit1:
image: bijukunjummen/rabbitmq-server
hostname: rabbit1
ports:
- "5672:5672"
- "4369:4369"
- "1883:1883"
- "15672:15672"
- "25672:25672"
environment:
- RABBITMQ_DEFAULT_USER=myuser
- RABBITMQ_DEFAULT_PASS=mypass
rabbit2:
image: bijukunjummen/rabbitmq-server
hostname: rabbit2
extra_hosts:
- "rabbit1:10.106.136.7"
environment:
- CLUSTERED=true
- CLUSTER_WITH=rabbit1
- RAM_NODE=true
ports:
- "5672:5672"
- "4369:4369"
- "1883:1883"
- "15672:15672"
- "25672:25672"
rabbit3:
image: bijukunjummen/rabbitmq-server
hostname: rabbit3
extra_hosts:
- "rabbit1:10.106.136.7"
- "rabbit2:10.106.136.8"
environment:
- CLUSTERED=true
- CLUSTER_WITH=rabbit1
- RAM_NODE=true
ports:
- "5672:5672"
- "4369:4369"
- "1883:1883"
- "15672:15672"
- "25672:25672"