rocketmq的producer 和 Consumer的特性比较了解。 源码:https://github.com/limingios/netFuture/tree/master/jms 中的rocketmq-test项目
涉及到的类 org.apache.rocketmq.client.impl.CommunicationMode org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl#sendDefaultImpl
消息发到 Broker 后,不能立刻被 Consumer 消费,要到特定的时间点或者等待特定的时间后才能被消费。 固定精度: 1s 5s 10s 30s 1m 2m 3m 4m 5m 6m 7m 8m 9m 10m 20m 30m 1h 2h 涉及到的类org.apache.rocketmq.store.config.MessageStoreConfig#messageDelayLevel
涉及到的类 org.apache.rocketmq.client.impl.producer.DefaultMQProducerImpl#sendSelectImpl 在分布式队列实现排序,这个需求怎么做? 优先级:订单号20180206(queu1 )订单号20180207(queue2) 排序+优先级(分片)
DefaultMQPullConsumer DefaultMQPushConsumer
org.apache.rocketmq.common.protocol.heartbeat.MessageModel#BROADCASTING org.apache.rocketmq.common.protocol.heartbeat.MessageModel#CLUSTERING
org.apache.rocketmq.common.consumer.ConsumeFromWhere#CONSUMEFROMLASTOFFSET org.apache.rocketmq.common.consumer.ConsumeFromWhere#CONSUMEFROMFIRSTOFFSET org.apache.rocketmq.common.consumer.ConsumeFromWhere#CONSUMEFROMTIMESTAMP
Consumer 消费消息失败后,要提供一种重试机制,令消息再消费一次。Consumer 消费消息失败
RocketMQ无法避免消息重复,所以如果业务对消费重复非常敏感,务必要在业务层面去重
回溯消费是指Consumer已经消费成功的消息,由于业务上需求需要重新消费,要支持此功能。 RocketMQ支持按照时间回溯消费,时间维度精确到毫秒,可以向前回溯,也可以向后回溯。 使用命令:sh mqadmin resetOffsetByTime -g xx -s yy -t tt
org.apache.rocketmq.namesrv.NamesrvStartup org.apache.rocketmq.namesrv.NamesrvController#initialize org.apache.rocketmq.namesrv.kvconfig.KVConfigManager#load org.apache.rocketmq.remoting.netty.NettyRemotingServer(初始化远程服务、线程池服务) 初始化过程执行
消息接受、存储(恢复)、与个节点之间通讯。
org.apache.rocketmq.common.ConfigManager#load#加载文件(store/config)内容 org.apache.rocketmq.store.DefaultMessageStore#load加载磁盘文件内容 org.apache.rocketmq.remoting.netty.NettyRemotingServer初始化通信层 线程池 org.apache.rocketmq.broker.BrokerController#registerProcessor 注册远程服务
持久核心处理类
初始化过程执行
参看源码:jms里面的rocket运维
PS:特性和运维只是了解下,看下github源码中的文档,里面介绍的更加详细。