发送同步消息|学习笔记

简介: 快速学习发送同步消息

开发者学堂课程【RocketMQ知识精讲与项目实战(第一阶段)发送同步消息】学习笔记,与课程紧密联系,让用户快速学习知识

课程地址:https://developer.aliyun.com/learning/course/702/detail/12376


发送同步消息 


(1)消息发送

*发送同步消息:意思就是消息的生产者,它作为客户端给 mq 发送消息,发送完消息之后这个客户端会阻塞在那里,直到 mq 给它传送一个结果,这个客户端的程序才能往下执行。

这种可靠性同步地发送方式使用的比较广泛,比如: 重要的消息通知,短信通知。

例如:

package com. itheima. mq. rocketmq. base. producer;

/**

*发送同步消息

*/

public class  SyncProducer {

public static void main(string[]args){

//1.创建消息生产者 producer,并制定生产者组名I

//2.指定 Nameserver .地址

//3. Fd/producer

//4.创建消息对象,指定主题 Topic、Tag 和消息体

//5.发送消息

//6.关闭生产者producer

}

}

现在使用代码把这六步描述即可

public static void main(String[]args) throws Exception{

//1.剑建消息生产者 producer,并制定生产者组名

DefaultMQProducer  producer=new  DefaultMQProducer (producer Group."group I");

//2.指定 Nameserver 地址producer. setNamesrvAddr ("192.168.25,135:9876;192.168.25.138:9

876");

//3.启动 producer

producer. start();

for(int i=0;i<10;i++){

//4.剑建消息对象,指定主题 Topic、Tag 和消息体(

/**

*参数一:消息主题 Topic

*参数二:消息 Tag

*参数三:消息内容

*/

Message msg new Message(topic"base", tags:"Tag 1",("Hello world"+i++), get Bytes());

}

//5.发送消息

SendResult  result=producer. send(msg);

//发送状态

Sendstatus  status=result. getSendStatus ();

//消息 ID

String msgId=result ggetMsgId();

//消息接受 ID

int queueId=result, getMessageQueue (), getQueueId ();

System. out.printIn("发送状态:"+result+",消息ID"+msgId=",队列"+queueId);

}

public class  syncProducer {

public static void main(string[]args) throws Exception{

//实例化消息生产者 Producer

DefaultMQProducer  producer=new  DefaultMQProducer ("please rename group name"); s//设置 NameServer 的地址

product ,se  tNamesrvAddr ("local host :9876");

//启动 Producer 实例

producer, start();

for (int i = 0 ;i < 100;i++) {

//创建消息,并指定 Topic, Tag 和消息体

Message msg new Message("Topic Test"/*Topic"/,

"TagA"/"Tag*/,

("Hello RocketMQ"+i), get Bytes( RemotingHelper .DEFAULT CHARSET)/"Message body"/) ;

//发送消息到一个Broker

 sendkesult   sendResult =producer. send(msg);

//通过 send Result 返回消息是否成功送达

system, out, printf("%s%n", send Result);

}

//如果不再发送消息,关闭 Producer 实例。

producer. shutdown();

}

image.png

相关实践学习
消息队列RocketMQ版:基础消息收发功能体验
本实验场景介绍消息队列RocketMQ版的基础消息收发功能,涵盖实例创建、Topic、Group资源创建以及消息收发体验等基础功能模块。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
2月前
|
消息中间件 监控 Java
RocketMQ 同步发送、异步发送和单向发送,如何选择?
本文详细分析了 RocketMQ 中同步发送、异步发送和单向发送三种消息发送方式的原理、优缺点及适用场景。同步发送可靠性高但延迟较大,适合订单系统等场景;异步发送非阻塞且延迟低,适用于实时数据处理等场景;单向发送高效但可靠性低,适用于日志收集等场景。文章还提供了示例代码和核心源码分析,帮助读者更好地理解每种发送方式的特点。
312 4
|
5月前
|
消息中间件 SQL RocketMQ
【RocketMQ系列五】消息示例-顺序消息&延迟消息&广播消息的实现
【RocketMQ系列五】消息示例-顺序消息&延迟消息&广播消息的实现
100 1
|
7月前
|
消息中间件
【面试问题】如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
【1月更文挑战第27天】【面试问题】如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
|
6月前
|
消息中间件 Serverless 网络性能优化
消息队列 MQ产品使用合集之客户端和服务器之间的保活心跳检测间隔是怎么设置的
消息队列(MQ)是一种用于异步通信和解耦的应用程序间消息传递的服务,广泛应用于分布式系统中。针对不同的MQ产品,如阿里云的RocketMQ、RabbitMQ等,它们在实现上述场景时可能会有不同的特性和优势,比如RocketMQ强调高吞吐量、低延迟和高可用性,适合大规模分布式系统;而RabbitMQ则以其灵活的路由规则和丰富的协议支持受到青睐。下面是一些常见的消息队列MQ产品的使用场景合集,这些场景涵盖了多种行业和业务需求。
|
消息中间件
RabbitMQ如何支持事务性消息的发送和接收
RabbitMQ消息的发送和接收
229 0
同步消息和异步消息
同步消息和异步消息
153 0
|
消息中间件 存储 缓存
Kafka快速入门(生产者)同步异步发送、分区、消息精确一次发送、幂等性、事务
Kafka快速入门(生产者)同步异步发送、分区、消息精确一次发送、幂等性、事务
Kafka快速入门(生产者)同步异步发送、分区、消息精确一次发送、幂等性、事务
|
消息中间件 存储 算法
【视频】定时消息 | 学习笔记
快速学习【视频】定时消息
146 0
【视频】定时消息 | 学习笔记
|
消息中间件 物联网 Linux
Msgrcv 接收消息|学习笔记
快速学习 Msgrcv 接收消息
|
消息中间件 RocketMQ 开发者
消息发送1-消息校验|学习笔记
快速学习消息发送1-消息校验
消息发送1-消息校验|学习笔记

热门文章

最新文章