rocketmq学习笔记 三 rocketmq功能梳理

大致跑了一些rocketmq例子了,也做了hello world,今天对rocketmq的功能,做一些梳理


1.发布订阅

简单的消息系统,通过topic 订阅发布

2.消息优先级

定义不同的topic 或者tag,客户端来控制各个topic的抓取优先级

3消息顺序

一个queue中的消息是严格有序的

4.消息存储

消息持久化,各种牛逼的技术后面细分

5.消息过滤

客户端上传filter java类文件,有filterServer来执行,用cpu来换取io,不用传到客户端来校验

6.分布式事务

目前开源没有完全实现,之前的一个分支有简单的实现,喜欢的朋友可以参考 @李战辉大神的分支

7.定时(延时)消息

private String messageDelayLevel = "1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h";

topic = ScheduleMessageService.SCHEDULE_TOPIC;
                queueId = ScheduleMessageService.delayLevel2QueueId(msg.getDelayTimeLevel());

8.消息轨迹

目前阿里云上ONS支持,开源里面没有实现,我们可以基于rocketmq的消息协议,来进行扩展

extFields加入我们自定义的字段(全局消息id)


    private int code;
    private LanguageCode language = LanguageCode.JAVA;
    private int version = 0;
    private int opaque = requestId.getAndIncrement();
    private int flag = 0;
    private String remark;
    private HashMap<String, String> extFields;
    private transient CommandCustomHeader customHeader;


9.消息查询

支持messageId和message Key , rocketmq-tools提供了一些命令api




10.消息回溯


是指rocketmq支持按照时间进行消息回溯,重新消费,也就是rocketmq支持按照时间查询


public class QueryMessageRequestHeader implements CommandCustomHeader {
    @CFNotNull
    private String topic;
    @CFNotNull
    private String key;
    @CFNotNull
    private Integer maxNum;
    @CFNotNull
    private Long beginTimestamp;
    @CFNotNull
    private Long endTimestamp;


    @Override
    public void checkFields() throws RemotingCommandException {

    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值