RocketMQ核心概念

RoketMq架构:

  • NameServer:

Topic 的路由注册中心,为客户端根据 Topic 提供路由服务。NameServer是去中心化的,每个NameServer都保存了完整的路由信息。

  • Broker:

消息存储。

  • client:

producer:消息发送

consumer:消息消费

  • 消息消费模式:广播,集群

  • 负载均衡算法

MessageQueueSelector (org.apache.rocketmq.client.producer)

java 复制代码
producer.send(msg, new MessageQueueSelector() {
    @Override
    public MessageQueue select(List<MessageQueue> mqs, Message msg, Object arg) {
        int index = arg.hashCode() % mqs.size();
        return mqs.get(index);
    }
}, "orderId123");

MessageQueueSelector (org.apache.rocketmq.proxy.service.route) 在RocketMQ集群部署中,代理服务可能需要根据消息属性或集群状态动态选择目标Broker或队列。

MessageSelector (org.apache.rocketmq.client.consumer) 消费者端的消息选择器,用于通过SQL表达式过滤消息(基于消息属性或Tag)。

java 复制代码
consumer.subscribe("TopicTest", MessageSelector.bySql("a > 5 AND b = 'hello'"));

QueueSelector (org.apache.rocketmq.proxy.processor) 代理处理器(Processor)中的队列选择接口,可能用于代理内部处理消息时的队列分配逻辑。

  • 生产者侧MessageQueueSelector 提供自定义队列选择能力,确保消息有序性或分区。
  • 消费者侧MessageSelector 实现消息过滤,提升消费效率。
  • 代理层 :同名的MessageQueueSelectorQueueSelector服务于代理的路由和负载均衡逻辑,对用户透明。

这些类共同构成了RocketMQ灵活的消息路由和过滤机制,适用于不同场景下的消息处理需求。

  • 消费模型:并发,顺序

  • 事务消息:

  • 定时消息:16个延时级别

RocketMQ可以通过ack保证消息至少被消费一次,但是不能保证消息只被消费一次。

相关推荐
galaxyffang3 天前
RocketMQ 为什么性能不如 Kafka?
分布式·kafka·rocketmq
一叶飘零_sweeeet3 天前
从 Kafka 到 RocketMQ:迁移实战全攻略
分布式·kafka·rocketmq
一叶飘零_sweeeet6 天前
Spring Cloud Alibaba RocketMQ 实战:从底层原理到微服务落地全攻略
微服务·架构·rocketmq
一叶飘零_sweeeet6 天前
RocketMQ 核心解密:NameServer 路由发现与负载均衡的底层逻辑全解析
负载均衡·rocketmq
无心水7 天前
【分布式利器:事务】5、本地消息表vs事务消息:异步方案怎么选?
分布式·rocketmq·分布式事务·saga·事务消息·分布式利器·2pc3pc
huisheng_qaq7 天前
【RocketMq源码篇-02】rocketmq集群搭建详细过程(docker版-2主2从)
docker·rocketmq·rocketmq集群·rocketmq源码·2主2从
无心水8 天前
【分布式利器:RocketMQ】RocketMQ基本原理详解:架构、流程与核心特性(附实战场景)
中间件·架构·rocketmq·topic·rocketmq基本原理·电商金融mq·nameserver
小虾米 ~9 天前
RocketMQ DefaultMQPushConsumer vs DefaultLitePullConsumer
java·rocketmq·java-rocketmq
2***57429 天前
后端消息中间件对比,RabbitMQ与RocketMQ
分布式·rabbitmq·rocketmq
无心水10 天前
【分布式利器:RocketMQ】2、RocketMQ消息重复?3种幂等方案,彻底解决重复消费(附代码实操)
网络·数据库·rocketmq·java面试·消息幂等·重复消费·分布式利器