文章目录
上篇文章《RocketMQ系列(二)双主双从集群搭建》中,我们搭建了双主双从的集群环境,并启动了可视化平台rocketmq-console,本文我们使用原生api发送一些消息到mq中,然后进行消费。
一.生产消息
导入mq客户端的依赖包:
<dependency>
<groupId>org.apache.rocketmq</groupId>
<artifactId>rocketmq-client</artifactId>
<version>4.4.0</version>
</dependency>
1.1 同步消息
public static void main(String[] args) throws Exception {
//1.创建消息生产者,并指定组名
DefaultMQProducer producer = new DefaultMQProducer("group1");
//2.指定nameserver的地址
producer.setNamesrvAddr("192.168.17.101:9876;192.168.17.102:9876");
//3.启动producer
producer.start();
//4.创建消息
for (int i = 0; i < 10; i++) {
Message message = new Message("base", "tag1", ("hello world" + i).getBytes());
//5.发送消息
SendResult sendResult = producer.send(message);
System.out.println(sendResult.toString());
TimeUnit.SECONDS.sleep(2);
}
//6.关闭生产者
producer.shutdown();
}
打印输出如下:
SendResult [sendStatus=SEND_OK, msgId=C0A8010603A018B4AAC2618C4F520000, offsetMsgId=C0A8116600002A9F00000000000000A9, messageQueue=MessageQueue [topic=base, brokerName=broker-b, queueId=2], queueOffset=1]
SendResult [sendStatus=SEND_OK, msgId=C0A8010603A018B4AAC2618C57420001, offsetMsgId=C0A8116600002A9F0000000000000152, messageQueue=MessageQueue [topic=base, brokerName=broker-b, queueId=3], queueOffset=0]
SendResult [sendStatus=SEND_OK, msgId=C0A8010603A018B4AAC2618C5F180002, offsetMsgId=C0A8116600002A9F00000000000001FB, messageQueue=MessageQueue [topic=base, brokerName=broker-b, queueId=0], queueOffset=0]
SendResult [sendStatus=SEND_OK, msgId=C0A8010603A018B4AAC2618C66F90003, offsetMsgId=C0A8116600002A9F00000000000002A4, messageQueue=MessageQueue [topic=base, brokerName=broker-b, queueId=1], queueOffset=0]
SendResult [sendStatus=SEND_OK, msgId=C0A8010603A018B4AAC2618C6ECE0004, offsetMsgId=C0A8116600002A9F000000000000034D, messageQueue=MessageQueue [topic=base

本文详细介绍 RocketMQ 的消息发送与接收机制,包括同步、异步、顺序及延迟消息的发送,以及广播、负载均衡、顺序消息的消费方式,并探讨消息过滤策略。
最低0.47元/天 解锁文章
477

被折叠的 条评论
为什么被折叠?



