发送同步消息|学习笔记

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

开发者学堂课程【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一站式入门使用
从源码编译、部署broker、部署namesrv,使用java客户端首发消息等一站式入门RocketMQ。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
1月前
|
消息中间件
【面试问题】如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
【1月更文挑战第27天】【面试问题】如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
|
10月前
|
消息中间件
RabbitMQ如何支持事务性消息的发送和接收
RabbitMQ消息的发送和接收
165 0
|
6月前
|
消息中间件 存储 安全
mq 消费者监听经常断会出现丢消息的问题吗
在消息队列(MQ)系统中,消费者监听经常断开可能会导致消息丢失的问题,具体取决于消息队列系统的设计和配置,以及你的应用程序的处理方式。以下是一些可能导致消息丢失问题的情况: 1. **消费者断开连接:** 如果消费者监听过程中发生意外断开,例如网络故障、消费者应用程序崩溃等,那么在断开连接的瞬间,可能存在未被消费的消息。 2. **消息确认机制:** 消息队列通常提供消息确认机制,确保消息在被成功处理后才被从队列中移除。如果你的消费者应用程序在处理消息时没有发送确认,或者确认机制配置不正确,可能导致消息在被处理前被从队列中移除,从而丢失。 3. **持久化设置:** 消息队列通常提供持久
|
8月前
|
消息中间件
RabbitMQ如何确保消息发送,消息接收
RabbitMQ如何确保消息发送,消息接收
55 0
|
消息中间件 Java 数据库
RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)
RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)
323 0
RabbitMQ:第二章:Spring整合RabbitMQ(简单模式,广播模式,路由模式,通配符模式,消息可靠性投递,防止消息丢失,TTL,死信队列,延迟队列,消息积压,消息幂等性)
同步消息和异步消息
同步消息和异步消息
103 0
|
消息中间件 存储 缓存
Kafka快速入门(生产者)同步异步发送、分区、消息精确一次发送、幂等性、事务
Kafka快速入门(生产者)同步异步发送、分区、消息精确一次发送、幂等性、事务
Kafka快速入门(生产者)同步异步发送、分区、消息精确一次发送、幂等性、事务
|
消息中间件 物联网 Linux
Msgrcv 接收消息|学习笔记
快速学习 Msgrcv 接收消息
276 0
Msgrcv 接收消息|学习笔记
|
消息中间件 Java 数据库
消息的和发送和接收|学习笔记
快速学习消息的和发送和接收
117 0
|
消息中间件 RocketMQ 开发者
发送异步消息|学习笔记
快速学习发送异步消息
62 0