RocketMQ核心知识点整理,收藏再看!
RocketMQ是一种分布式消息中间件,它是阿里巴巴的开源项目,被广泛应用于各种分布式系统和微服务架构中。以下是RocketMQ的一些核心概念和关键点:
- 消息模型:RocketMQ采用Queue模型和Pub/Sub模型。
- 集群部署:可以部署为单个或多个集群。
- 消费模式:包括推模式(pull)和拉模式(push)。
- 主题和标签:消息主题(Topic)是消息的第一级别的类别,标签(Tag)是用来进一步细分主题。
- 消息顺序:可以保证在某一个Queue中消息的顺序性。
- 延时消息:支持延时消息,可以设置消息的存活时间。
- 事务消息:支持分布式事务。
- 消费者组:允许多个消费者实例组成一个组共同消费一个队列的消息。
- 消息过滤:通过Tag来过滤消息。
- 消息查询:可以根据时间戳、消息ID等查询消息。
核心代码示例(Java):
// 生产者发送消息
DefaultMQProducer producer = new DefaultMQProducer("producer_group");
producer.setNamesrvAddr("localhost:9876");
producer.start();
Message message = new Message("TopicTest" /* Topic */, "TagA" /* Tag */,
("Hello RocketMQ " + i).getBytes(RemotingHelper.DEFAULT_CHARSET) /* Message body */
);
SendResult sendResult = producer.send(message);
// 消费者监听并消费消息
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("consumer_group");
consumer.setNamesrvAddr("localhost:9876");
consumer.subscribe("TopicTest", "TagA");
consumer.registerMessageListener((MessageListenerConcurrently) (msgs, context) -> {
for (MessageExt msg : msgs) {
System.out.println(new String(msg.getBody(), RemotingHelper.DEFAULT_CHARSET));
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS;
});
consumer.start();
以上代码展示了一个简单的RocketMQ生产者和消费者的例子。生产者发送消息到指定的Topic和Tag,消费者订阅相应的Topic和Tag并监听消息。
评论已关闭