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、毕竟是引入新特性、可用性会降低;

从以下四个方面解释

负载均衡

循环平均分配更好

消息重试

死信队列

消费重复消费

重复消费的原因:

相关推荐
方也_arkling2 小时前
【Java-Day08】static / final / 枚举
java·开发语言
橙淮2 小时前
Spring Bean作用域与生命周期全解析
java·spring
风吹夏回2 小时前
Python 全局异常处理:从“满屏 try-except”到优雅兜底
开发语言·python
Chengbei112 小时前
一站式源码安全检测工具、云安全 / APP / 小程序源码敏感信息递归多层目录扫描AK、JWT、手机号、身份证等敏感信息
java·开发语言·安全·web安全·网络安全·系统安全·安全架构
llz_1122 小时前
web-第一次课后作业
java·开发语言·idea
小熊Coding2 小时前
Python爬取当当网二手图书项目实战!
开发语言·爬虫·python·beautifulsoup·requests·二手图书
秋93 小时前
Java项目运行5天左右自动宕机:系统性定位与解决方案
java·开发语言·python
小江的记录本3 小时前
【JVM虚拟机】垃圾回收GC:垃圾收集器:CMS:核心原理、回收流程、优缺点、废弃原因(附《思维导图》+《面试高频考点清单》)
java·jvm·后端·python·spring·面试·maven
xiaoshuaishuai83 小时前
C# 内存管理与资源泄漏
开发语言·c#
DIY源码阁3 小时前
JavaSwing学生成绩管理系统 - MySQL版
java·数据库·mysql·eclipse