`

rocketMQ发送消息入门

阅读更多

使用rocketmq发送消息、接收消息:
(1)引入client包
<dependency>
    <groupId>org.apache.rocketmq</groupId>
    <artifactId>rocketmq-client</artifactId>
    <version>4.2.0</version>
</dependency>
(2)在linux上启动NameServer、BrokerServer

(3)生产者
public class Producer {
public static void main(String[] args) throws Exception{
Producer p = new Producer();
p.sendMessage();
}

// 发送消息
void sendMessage() throws Exception {
DefaultMQProducer producer = new DefaultMQProducer("producer_test");
// 指定NameServer地址
producer.setNamesrvAddr("192.168.191.131:9876"); // 多个ip以分号分隔
/**
* Producer对象在使用之前必须要调用start初始化,初始化一次即可 注意:切记不可以在每次发送消息时,都调用start方法
*/
producer.start();
for (int i = 0; i < 20; i++) {
// 构建消息
Message msg = new Message("MyTopic", "Tag", ("hello " + i).getBytes(RemotingHelper.DEFAULT_CHARSET));
// 发送同步消息
SendResult sendResult = producer.send(msg);
System.out.printf("%s%n", sendResult);
}
producer.shutdown();
}
}

(4)消费者
public class Consumer {

public static void main(String[] args) throws Exception{
Consumer c = new Consumer();
c.receiveMessage();
}

void receiveMessage() throws MQClientException{
DefaultMQPushConsumer consumer = new DefaultMQPushConsumer("consumer_test");
// 指定NameServer地址,多个地址以 ; 隔开
consumer.setNamesrvAddr("192.168.191.131:9876");
/**
* 设置Consumer第一次启动是从队列头部开始消费还是队列尾部开始消费 如果非第一次启动,那么按照上次消费的位置继续消费
*/
consumer.setConsumeFromWhere(ConsumeFromWhere.CONSUME_FROM_FIRST_OFFSET);
consumer.subscribe("MyTopic", "*"); //MyTopic 跟生产者发送消息的Topic相同
consumer.registerMessageListener(new MessageListenerConcurrently() {
public ConsumeConcurrentlyStatus consumeMessage(List<MessageExt> msgs, ConsumeConcurrentlyContext context) {
try {
for (MessageExt msg : msgs) {
String msgbody = new String(msg.getBody(), "utf-8");
System.out.println("接收消息: " + msgbody);
}
} catch (Exception e) {
e.printStackTrace();
return ConsumeConcurrentlyStatus.RECONSUME_LATER; //稍后再试
}
return ConsumeConcurrentlyStatus.CONSUME_SUCCESS; //消费成功
}
});
consumer.start();
System.out.printf("consumer start..%n");
}
}

(5)问题
1.Exception in thread "main" org.apache.rocketmq.client.exception.MQClientException: No route info of this topic, MyTopic
Broker 禁止自动创建 Topic,且用户没有通过手工方式创建 Topic

nohup sh mqbroker -n localhost:9876 autoCreateTopicEnable=true &

关闭防火墙:service iptables stop
0
0
分享到:
评论

相关推荐

    rocketmq消息中间件.zip

    - **快速入门**:安装部署 RocketMQ,编写 Producer 和 Consumer 示例代码,理解基本操作流程。 - **消息过滤**:学习使用 SQL92 进行消息过滤,实现动态路由。 - **消息轨迹追踪**:了解如何开启消息轨迹,用于...

    day09-分布式消息系统RocketMQ的入门.zip

    本课程的"day09-分布式消息系统RocketMQ的入门"涵盖了以上知识,包括代码示例、讲义和相关资料,将帮助学员快速理解和上手RocketMQ,为构建高效的分布式应用打下坚实基础。学习过程中,通过实际操作和案例分析,将...

    rocketmq入门指南

    ### RocketMQ 入门知识点详解 #### 一、RocketMQ 概述 RocketMQ 是一款高性能、可伸缩的消息中间件,它具有低延迟、高可靠的特点,适用于各种消息传递场景。RocketMQ 支持发布/订阅(Pub/Sub)和点对点(P2P)消息模型...

    RocketMQ讲义-03.pdf

    RocketMQ是阿里巴巴开源的一款分布式消息中间件,广泛应用于大数据、实时计算、微服务等领域。本文将深入探讨RocketMQ的核心概念、优缺点、安装配置以及高级特性。 **1. MQ介绍** * **异步解耦**:MQ通过异步通信...

    RocketMQ入门实战及源码解析.7z

    RocketMQ的源码解析可以帮助我们理解其内部机制,包括NameServer的注册与发现、Broker的消息存储与检索、Producer的发送逻辑、Consumer的消费策略等。通过阅读源码,可以学习到如何设计分布式系统、如何优化消息传递...

    分布式消息系统RocketMQ的入门.docx

    Producer和Consumer的详细使用,包括如何发送不同类型的(如顺序消息、广播消息等)和如何处理消费位点,是理解RocketMQ的关键。 RocketMQ的存储特点体现在其高效的消息持久化机制,能够支持海量消息堆积,并保证...

    消息中间件+RocketMq+入门文档+用于学习

    【消息中间件RocketMQ入门】 消息中间件(MQ)是一种在分布式系统中用于通信的技术,它通过消息队列作为消息的容器,使得系统组件之间的交互变得更加高效和解耦。RocketMQ是由阿里巴巴开源的高性能消息中间件,已被...

    rocketmq实例代码

    3. **生产者(Producer)**: 生产者负责发送消息到RocketMQ服务器,可以通过设置不同的属性,如消息的优先级、延时等级等。 4. **消费者(Consumer)**: 消费者从RocketMQ服务器接收消息并处理,有两种消费模式:...

    SpringBoot+RocketMQ 快速入门案例.

    这里是SpringBoot+RocketMQ 快速入门案例. 实现了消费者 , 生产者不同模式的消息发送于消费.

    Apache RocketMQ 从入门到实战1

    书中还涵盖了RocketMQ的消费组从何处开始消费、进程异常退出的排查、消息发送问题、主从切换实战、消息ID解析、ACL使用、消息轨迹设计等多个实际操作和问题解决场景,旨在帮助读者深入了解RocketMQ的内部机制,并...

    Apache RocketMQ go 客户端.zip

    特征对于2.X版本,它支持同步方式发送消息异步方式发送消息单向模式发送消息以批处理模式发送消息发送有序消息发送延迟消息发送交易信息使用推送模型消费消息使用拉模型消费消息使用广播模型消费消息发布和订阅消息...

    【RocketMQ windows小白安装教程】

    启动Producer发送消息,Consumer订阅并消费这些消息,验证RocketMQ的正常工作。 通过以上步骤,你已经在Windows环境中搭建了一个简单的RocketMQ实例,并了解了其基本操作。在实际生产环境中,还需要考虑集群部署、...

    RocketMQ最全介绍与实战.pdf

    Producer 是消息的发送者,Consumer 是消息接收者,Broker 是暂存和传输消息的中间件,NameServer 是管理 Broker 的节点,Topic 是区分消息的种类,Message Queue 是 Topic 的分区,用于并行发送和接收消息。...

    消息中间件 RocketMQ 发布和订阅 Demo

    这个“消息中间件 RocketMQ 发布和订阅 Demo”是一个适合初学者的入门示例,通过 Java 编写,利用 Maven 进行项目管理,旨在帮助开发者快速理解如何使用 RocketMQ 实现发布和订阅操作。 首先,我们需要了解 ...

    rocketmq-demo.zip

    1. **Producer**:生产者负责创建和发送消息到RocketMQ服务器。在RocketMQ中,生产者可以是单个实例或一组实例,它们共享一个相同的Producer Group标识。在代码示例中,生产者会创建一个`DefaultMQProducer`对象,...

    阿里RocketMQ_用户指南_V3.2.4 & RocketMQ-原理简介

    1. **快速入门**:如何配置环境,创建Producer和Consumer实例,发送与接收消息的基本步骤。 2. **高级特性**:如批量发送、消息回溯、消息过滤、消费模式(如集群消费和广播消费)以及消息的顺序消费等。 3. **...

    1.1.RocketMq课程说明.mp4

    2.RocketMQ入门 2.1.rocketmq安装 2.2.一对一模式 2.3.广播模式 3.消息的特性 3.1.同步消息 3.2.异步消息 3.3.单向消息 3.4.延时消息 3.5.批量发送 3.6.顺序性 3.7.消息事务 3.8.过滤消息tag 4.rocketmq集群 4.1....

    RocketMQ 的 jar 文件 开发文档等资源

    - **快速入门**:文档会引导开发者快速搭建环境,创建第一个发送和接收消息的示例。 - **API 文档**:详尽介绍了 RocketMQ 的各种接口,包括 Producer、Consumer、Message 等类的使用方法。 - **最佳实践**:提供...

    Tedu5阶段RocketMQ中核心概念

    这段代码展示了如何使用RocketMQ发送一条消息的过程,包括初始化生产者、创建消息、发送消息及关闭资源等步骤。 通过上述介绍,我们可以看到RocketMQ在消息处理中的强大功能及其应用场景。此外,理解`JAVA_HOME`...

Global site tag (gtag.js) - Google Analytics