目录
RocketMQ作为一款纯java、分布式、队列模型的开源消息中间件,支持事务消息、顺序消息、批量消息、定时消息、消息回溯等。
RocketMQ主要有四大核心组成部分:NameServer、Broker、Producer以及Consumer四部分。
RocketMQ 优势
支持事务型消息(消息发送和 DB 操作保持两方的最终一致性,RabbitMQ 和 Kafka 不支持)
支持结合 RocketMQ 的多个系统之间数据最终一致性(多方事务,二方事务是前提)
支持 18 个级别的延迟消息(Kafka 不支持)
支持指定次数和时间间隔的失败消息重发(Kafka 不支持,RabbitMQ 需要手动确认)
支持 Consumer 端 Tag 过滤,减少不必要的网络传输(即过滤由MQ完成,而不是由消费者完成。RabbitMQ 和 Kafka 不支持)
支持重复消费(RabbitMQ 不支持,Kafka 支持)
Docker-compose安装RocketMQ
一、docker目录下建立以下目录文件
mkdir rocketmq
mkdir conf
mkdir logs
mkdir store
二、docker-compose.yml配置
version: "3"
services:
mqnamesrv:
image: foxiswho/rocketmq:4.7.0 #安装什么版本就写什么版本
container_name: mqnamesrv
ports:
- 9876:9876
environment:
JAVA_OPT: -server -Xms256m -Xmx256m
command: sh mqnamesrv
mqbroker:
image: foxiswho/rocketmq:4.7.0
container_name: mqbroker
ports:
- 10911:10911
- 10909:10909
volumes:
- ./conf/broker.conf:/usr/local/dockerCompose/rocketmq/conf/broker.conf
environment:
JAVA_OPT_EXT: -server -Xms256m -Xmx256m -Xmn128m
NAMESRV_ADDR: mqnamesrv:9876
command: sh mqbroker -n mqnamesrv:9876 -c /usr/local/dockerCompose/rocketmq/co