发送同步消息|学习笔记

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

开发者学堂课程【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版Serverless系列实例进行获取接入点、创建Topic、创建订阅组、收发消息、查看消息轨迹和仪表盘。
消息队列 MNS 入门课程
1、消息队列MNS简介 本节课介绍消息队列的MNS的基础概念 2、消息队列MNS特性 本节课介绍消息队列的MNS的主要特性 3、MNS的最佳实践及场景应用 本节课介绍消息队列的MNS的最佳实践及场景应用案例 4、手把手系列:消息队列MNS实操讲 本节课介绍消息队列的MNS的实际操作演示 5、动手实验:基于MNS,0基础轻松构建 Web Client 本节课带您一起基于MNS,0基础轻松构建 Web Client
相关文章
|
数据采集 SQL 数据可视化
大数据可视化技巧:借助PowerBI提升数据故事讲述力
【4月更文挑战第8天】Power BI助力大数据可视化,支持多种数据源连接,如SQL Server、Excel,提供数据清洗与转换功能。通过选择合适图表类型、运用颜色和大小强化表达,创建交互式仪表板。讲述数据故事时,注重故事主线设计,利用叙事技巧引导观众,并添加文本说明。分享已完成报告,提升数据驱动决策能力。动手实践,体验Power BI的强大与易用。
463 0
|
缓存 负载均衡 Linux
内核:进程与调度机制(笔记)
内核:进程与调度机制(笔记)
267 0
|
11月前
|
自然语言处理 数据安全/隐私保护 UED
如何选择适合的域名:关键步骤与策略
在数字化时代,域名不仅是网站的身份标识,更是品牌在线形象的重要组成部分。本文将指导您如何选择一个恰当、易于记忆且富有意义的域名,从明确目标与定位、选择合适的域名类型与后缀、考虑长度与可读性、检查可用性与合法性、评估SEO价值、考虑未来扩展、购买与注册到监测与维护,全方位帮助您打造优质域名。
362 4
|
JavaScript 前端开发 API
一文深入了解Vue2和Vue3的区别
Vue3 相比 Vue2 来说,Vue3 重写了虚拟 Dom 实现,编译模板的优化,更高效的组件初始化,undate性能提高 1.3 ~ 2 倍,SSR 速度提高了 2 ~ 3 倍。
3813 0
一文深入了解Vue2和Vue3的区别
|
前端开发 API vr&ar
Android开发之OpenGL绘制三维图形的流程
即将连载的系列文章将探索Android上的OpenGL开发,这是一种用于创建3D图形和动画的技术。OpenGL是跨平台的图形库,Android已集成其API。文章以2D绘图为例,解释了OpenGL的3个核心元素:GLSurfaceView(对应View)、GLSurfaceView.Renderer(类似Canvas)和GL10(类似Paint)。通过将这些结合,Android能实现3D图形渲染。文章介绍了Renderer接口的三个方法,分别对应2D绘图的构造、测量布局和绘制过程。示例代码展示了如何在布局中添加GLSurfaceView并注册渲染器。
439 1
Android开发之OpenGL绘制三维图形的流程
|
Docker 容器
尚硅谷2024新版3小时速通Docker教程
尚硅谷2024新版3小时速通Docker教程
148 1
尚硅谷2024新版3小时速通Docker教程
|
Java API
Map.entry用法详解
Map.entry用法详解
|
存储
char *str,char &str,char *& str和char str的区别
char *str,char &str,char *& str和char str的区别
387 0
“快捷方式指向的驱动器或网络连接不可用” 解决方法
“快捷方式指向的驱动器或网络连接不可用” 解决方法
|
JavaScript
vue-Nuxt.js服务端渲染发起请求
vue-Nuxt.js服务端渲染发起请求
225 0