首页 > 其他分享 >【RocketMQ 课程笔记】11.RocketMQ消息发送之普通消息

【RocketMQ 课程笔记】11.RocketMQ消息发送之普通消息

时间:2022-09-19 10:15:16浏览次数:70  
标签:11 producer 192.168 发送 Master 消息 RocketMQ

RocketMQ消息发送之普通消息

架构拓扑

  • NameServer:192.168.31.103
  • Master:192.168.31.105
  • Slave:192.168.31.111

执行流程

  1. Master与Slave启动向NameServer注册
  2. 生产者Producer发送数据前从NameServer获取Master的IP、端口等通信参数
  3. 生产者Producer向Master发送消息
  4. Master向Slave进行消息同步

代码解析

//普通消息类型
@Slf4j
public class MessageType1 {
    public static void main(String[] args) {
        //DefaultMQProducer用于发送非事务消息
        DefaultMQProducer producer = new
        DefaultMQProducer("ProducerGroupName");
        //注册NameServer地址
        producer.setNamesrvAddr("192.168.31.103:9876");
        //异步发送失败后Producer自动重试2次
        producer.setRetryTimesWhenSendAsyncFailed(2);
        try {
            //启动生产者实例
            producer.start();
            //消息数据
            String data = "{\"title\":\"X市2021年度第四季度税务汇总数据\"}";
            //消息主题
            Message message = new Message("tax-data", "2021S4", data.getBytes());
            //发送结果
            SendResult result = producer.send(message);
            log.info("Broker响应:" + result);
        }catch (Exception e){
        	e.printStackTrace();
        }finally {
            try {
                //关闭连接
                producer.shutdown();
                log.info("连接已关闭");
            }catch (Exception e){
                e.printStackTrace();
            }
        }
    }
}

运行结果:

23:00:48.741 [main] INFO com.itlaoqi.rocketmq.mtype.MessageType1 - Broker响应:
SendResult [
    sendStatus=SEND_OK,
    msgId=7F000001347018B4AAC20A1687DC0000,
    offsetMsgId=C0A81F6900002A9F00000000000A21CB,
    messageQueue=MessageQueue [topic=tax-data, brokerName=broker-a,queueId=3],
    queueOffset=2
]
  • sendStatus:发送状态,SEND_OK代表成功
  • msgId:消息由 RocketMQ 分配的全局唯一Id,由 producer客户端生成,调用方法MessageClientIDSetter.createUniqID() 生成全局唯一的Id
  • offsetMsgId:Broker 服务端将消息追加到内存后会返回其物理偏移量,即在 commitlog 文件中的偏移量,然后会生成一个Id
  • messageQueue:消息队列内容
    • topic:主题名称
    • brokerName:broker服务器名字,在RocketMQ xxx.propertites配置文件中brokerName项定义
    • queueId:queueId队列Id,默认会初始化4个(0-3)
  • queueOffset:queueId对应队列逻辑上的位置(偏移量)

标签:11,producer,192.168,发送,Master,消息,RocketMQ
From: https://www.cnblogs.com/JamKing/p/16706749.html

相关文章

  • 面试题:一个consumer订阅两个topic,其中一个topic消息过多堆积了,会影响另一个topic消费
     问题:一个consumer订阅两个topic,其中一个topic消息过多堆积了,会影响另一个topic消费吗答案:不影响。为什么呢?因为rocketmq首先对消息进行负载均衡(rebalance),就是将topic中......
  • 5G UE接入消息详解
    问题:UE重新注册需要5-6分钟FER:5G学习笔记之UE接入消息详解5G;NG-RAN;NGApplicationProtocol(NGAP)(3GPPTS38.413version15.0.0Release15......
  • C++11 -- 匿名函数(lambda 表达式)
    0.一道题目引入关于sb力扣定义外部函数和变量报错这件事最初我定义了一个\(cmp\)函数用来对\(vector\)排序,和一个全局变量\(unordered\_map\)用来记录元素个数......
  • java0蓝途之day11
    1,继承(extends)继承者被称为子类,被继承者被称为父类2,继承的特点继承之后,子类就会自动拥有父类中的所有非私有的属性和方法(不包含构造方法)类只能单一继承(一个类只能继承......
  • 【C#】组件发布:MessageTip,轻快型消息提示窗
    【C#】组件发布:MessageTip,轻快型消息提示窗 -------------201610212046更新-------------更新至2.0版,基本完全重写,重点:改为基于原生LayeredWindow窗体和UpdateLayered......
  • 我的设计模式之旅、11 生成器(建造者)模式
    编程旅途是漫长遥远的,在不同时刻有不同的感悟,本文会一直更新下去。思考总结思考问题没有生成器模式的情况下在构建不同形式的复杂对象时的问题:如果为每种可能的对象都......
  • rocketMQ客户端和nameService、broker之间的信息交互
    客户端(包含生产者和消费者)定时任务里updateTopicRouteInfoFromNameServer方法,定时向nameService获取topic(当前客户端所包含的所有消费者者消费的和生产者要发送的)的信......
  • 【题解】CF1311E Construct the Binary Tree
    题目链接-->Problem-E-Codeforces题目大意给定\(n\)和\(d\),你需要构造一棵\(n\)个点的二叉树满足所有点的深度之和恰好为\(d\)。\(2≤n,d≤5000\)。分析......
  • CF1143D The Beatles(数学)
    题目链接  有\(n\)个快餐店,每个快餐点之间间隔\(k\)米,可以理解为是一个\(n×k\)的环,Sergey从\(s\)位置作为起始点,每次走\(l\)的长度,但是他忘记了\(s\)和\(l\)是多少,......
  • 在安装oracle11g时出现问题:INS-13001环境不满足最低要求
    在安装oracle11g时出现问题:INS-13001环境不满足最低要求 解决方法:找到下载解压后的文件,依次打开以下文件路径:Oracle11g\database\stage\cvu,在cvu文件下有个cvu_prereq.......