Apache RocketMQ 是一个开源的分布式消息中间件系统,最初由阿里巴巴开发并贡献给 Apache 软件基金会。RocketMQ 提供了高性能、高可靠性、高扩展性和低延迟的消息传递服务,适用于构建大规模分布式系统中的消息通信和数据同步。
RocketMQ 支持多种消息模型,包括点对点(P2P)和发布 / 订阅(Pub/Sub)模型。它具有以下特性:
- 高性能:RocketMQ 能够处理大规模消息传递,并具有低延迟和高吞吐量的特点。
- 高可靠性:RocketMQ 提供了消息的持久化存储和消息重试机制,确保消息不丢失,同时支持容错和高可用性。
- 高扩展性:RocketMQ 支持横向扩展,能够轻松地扩展到多个 Broker 节点以处理大量消息。
- 丰富的特性:RocketMQ 提供了丰富的特性,包括延迟消息、顺序消息、事务消息、消息过滤等。
- 监控和管理:RocketMQ 提供了丰富的监控和管理工具,用于监控消息的生产和消费情况,以及管理消息队列的配置和状态。
按照下面步骤,通过 Docker Compose 一键快速部署 RocketMQ
1. 编写 docker-compose
复制下面的内容,创建 docker-compose.yml 文件
version: '3.8'
services:
namesrv:
image: registry.cn-hangzhou.aliyuncs.com/jeecgdocker/rocketmq:4.9.6
container_name: rmqnamesrv
ports:
- 9876:9876
networks:
- rocketmq
command: sh mqnamesrv
broker:
image: registry.cn-hangzhou.aliyuncs.com/jeecgdocker/rocketmq:4.9.6
container_name: rmqbroker
ports:
- 10909:10909
- 10911:10911
- 10912:10912
environment:
- NAMESRV_ADDR=namesrv:9876
depends_on:
- namesrv
networks:
- rocketmq
command: sh mqbroker
dashboard:
image: registry.cn-hangzhou.aliyuncs.com/jeecgdocker/rocketmq-dashboard:latest
container_name: rmqdashboard
ports:
- 8080:8080
environment:
- JAVA_OPTS=-Drocketmq.namesrv.addr=namesrv:9876
depends_on:
- namesrv
networks:
- rocketmq
networks:
rocketmq:
driver: bridge
2. 启动 RocketMQ 集群
执行下面命令,根据 docker-compose.yml 创建 RockerMQ 集群
docker-compose up -d
3. 关闭 RocketMQ 集群
根据 docker-compose.yml 文件关闭所有服务。
docker-compose down
4. 访问 RocketMQ 管理界面
关于 RocketMQ 如何集成到项目中使用,可以参考开源项目 JeecgBoot 低代码平台