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

从以下四个方面解释

负载均衡

循环平均分配更好

消息重试

死信队列

消费重复消费

重复消费的原因:

相关推荐
forAllforMe1 天前
LAN9252 从机寄存器配置--C语言举例
c语言·开发语言
weixin_537590451 天前
《C程序设计语言》练习答案(练习1-4)
c语言·开发语言
chushiyunen1 天前
python中的内置属性 todo
开发语言·javascript·python
麦麦鸡腿堡1 天前
JavaWeb_请求参数,设置响应数据,分层解耦
java·开发语言·前端
2301_819414301 天前
C++与区块链智能合约
开发语言·c++·算法
不想看见4041 天前
Valid Parentheses栈和队列--力扣101算法题解笔记
开发语言·数据结构·c++
炸膛坦客1 天前
单片机/C/C++八股:(十五)内存对齐、结构体内存对齐
c语言·开发语言·单片机
娇娇yyyyyy1 天前
QT编程(13): Qt 事件机制eventfilter
开发语言·qt
bcbobo21cn1 天前
C# byte类型和byte数组的使用
开发语言·c#·字节数组·byte类型
计算机安禾1 天前
【C语言程序设计】第37篇:链表数据结构(一):单向链表的实现
c语言·开发语言·数据结构·c++·算法·链表·蓝桥杯