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

从以下四个方面解释

负载均衡

循环平均分配更好

消息重试

死信队列

消费重复消费

重复消费的原因:

相关推荐
恒悦sunsite2 分钟前
Redis之配置只读账号
java·redis·bootstrap
梦里小白龙7 分钟前
java 通过Minio上传文件
java·开发语言
人道领域8 分钟前
javaWeb从入门到进阶(SpringBoot事务管理及AOP)
java·数据库·mysql
m0_5613596712 分钟前
基于C++的机器学习库开发
开发语言·c++·算法
星空露珠19 分钟前
速算24点所有题库公式
开发语言·数据库·算法·游戏·lua
2401_8324027520 分钟前
C++中的类型擦除技术
开发语言·c++·算法
努力学习的小廉28 分钟前
我爱学算法之—— 递归回溯综合(二)
开发语言·算法
sheji526129 分钟前
JSP基于信息安全的读书网站79f9s--程序+源码+数据库+调试部署+开发环境
java·开发语言·数据库·算法
2301_7634724630 分钟前
C++网络编程(Boost.Asio)
开发语言·c++·算法
毕设源码-邱学长30 分钟前
【开题答辩全过程】以 基于Java Web的电子商务网站的用户行为分析与个性化推荐系统为例,包含答辩的问题和答案
java·开发语言