MQ的学习

RocketMQ基本原理

简单生产者书写

启动NAMESERVER;

java 复制代码
start mqnamesrv.cmd

启动BROKER;

java 复制代码
start mqbroker.cmd -n 127.0.0.1:9876 autoCreateTopicEnable=true
java 复制代码
public static void main(String[] args) throws Exception {
        //1、谁来发
        DefaultMQProducer producer = new DefaultMQProducer("group1");
        //2、发给谁   nameserver的地址  它掌管所有地址
        producer.setNamesrvAddr("localhost:9876");
        producer.start();
        //3、怎么发
        //4、发什么
        Message msg = new Message("topic1", "hello rocketmq".getBytes("UTF-8"));
        SendResult result = producer.send(msg);
        //5、发送的结果
        System.out.println("返回结果:" + result);
        //6、打扫战场
        producer.shutdown();



    }
}

简单消费者书写

多消费者模式

负载均衡(集群模式)

广播模式

默认是集群模式

即集群模式下,同个主题对于不同组是"广播模式",每个组都会消费同个消息;会重复消费;对于同个组是"集群模式",每个消费者平坦消息,不会重复消费;

多生产者模式

消息类型

同步、异步、单向消息

延时消息

单向消息:写日志文件等

延时消息:游戏、推送玩家回归等

批量消息:

tag过滤

用于:用于处理普通消息和vip消息

消息(sql)过滤

消费可追加属性、这个可以用于过滤消息、比如年龄大于18等;

springboot整合-生产者

java 复制代码
@Autowired
    RocketMQTemplate rocketMQTemplate;

    @GetMapping("/send")
    public String send() {
//        String msg = "Hello World";
//        Message message = new Message("topic9", "tag1", msg.getBytes());
//        rocketMQTemplate.send(message);

//        rocketMQTemplate.send(MessageBuilder.withPayload("Hello World").build());
        rocketMQTemplate.convertAndSend("topic", "hello");

        return "success";
    }
java 复制代码
rocketmq:
  name-server: localhost:9876
  producer:
    group: group1
server:
  port: 8081

springboot整合消费者

其余设置

顺序消息错乱

事务消息

面试题

集群

高级特性

消息存储特性

高校读写的两个特性

顺序写:预先预留空间、加快速度

零拷贝:

消息存储的物理地址

刷盘机制

异步输盘:

写入内存、积累一定量;或积累一定时间内、写入磁盘;

高可用性

用到MQ、毕竟是引入新特性、可用性会降低;

从以下四个方面解释

负载均衡

循环平均分配更好

消息重试

死信队列

消费重复消费

重复消费的原因:

相关推荐
Javatutouhouduan2 小时前
Java如何速通性能优化难题?
java·java面试·jvm调优·后端开发·java程序员·java八股文·java性能优化
lemon_sjdk2 小时前
DOM 节点
java·前端·javascript
leoZ2313 小时前
2026-09-09-springboot-cloud-deploy-pitfalls
java·前端·javascript·vue.js·人工智能·spring boot·后端
秦老师Q3 小时前
php零基础入门到实战,从语法到框架,一篇搞定
开发语言·php
驭渊的小故事3 小时前
多线程02
java·开发语言·jvm
阿里嘎多学长3 小时前
2026-09-09 GitHub 热点项目精选
开发语言·程序员·github·代码托管
随遇而安zx3 小时前
【多线程】---实战:CompletableFuture编排
java·多线程·并发
Wang's Blog3 小时前
Java框架快速入门: Spring Security+OAuth2之HTTP请求结构与认证基础
java·spring·http
君顾14 小时前
本地折扣卡 CPS 平台搭建:从系统架构到落地实战
java·开发语言·折扣卡
liangshanbo12155 小时前
手写 Function.prototype.call 与 Function.prototype.apply 面试题满分答案
开发语言·javascript·原型模式