类 com.alibaba.rocketmq.client.exception.MQClientException
的使用

使用 MQClientException 的软件包
com.alibaba.rocketmq.client   
com.alibaba.rocketmq.client.consumer   
com.alibaba.rocketmq.client.consumer.store   
com.alibaba.rocketmq.client.hook   
com.alibaba.rocketmq.client.impl   
com.alibaba.rocketmq.client.impl.consumer   
com.alibaba.rocketmq.client.impl.factory   
com.alibaba.rocketmq.client.impl.producer   
com.alibaba.rocketmq.client.producer   
 

com.alibaba.rocketmq.clientMQClientException 的使用
 

抛出 MQClientExceptioncom.alibaba.rocketmq.client 中的方法
static void Validators.checkGroup(String group)
          group 有效性检查
static void Validators.checkMessage(Message msg, DefaultMQProducer defaultMQProducer)
          message 有效性检查
static void Validators.checkTopic(String topic)
          topic 有效性检查
 void MQAdmin.createTopic(String key, String newTopic, int queueNum)
          创建topic
 long MQAdmin.earliestMsgStoreTime(MessageQueue mq)
          向服务器查询队列保存的最早消息对应的存储时间
 long MQAdmin.maxOffset(MessageQueue mq)
          向服务器查询队列最大Offset PS: 最大Offset无对应消息,减1有消息
 long MQAdmin.minOffset(MessageQueue mq)
          向服务器查询队列最小Offset PS: 最小Offset有对应消息
 QueryResult MQAdmin.queryMessage(String topic, String key, int maxNum, long begin, long end)
          根据消息Key查询消息
 long MQAdmin.searchOffset(MessageQueue mq, long timestamp)
          根据时间查询对应的offset,精确到毫秒
P.S.
 MessageExt MQAdmin.viewMessage(String msgId)
          根据消息ID,从服务器获取完整的消息
 

com.alibaba.rocketmq.client.consumerMQClientException 的使用
 

抛出 MQClientExceptioncom.alibaba.rocketmq.client.consumer 中的方法
 void DefaultMQPushConsumer.createTopic(String key, String newTopic, int queueNum)
           
 void DefaultMQPullConsumer.createTopic(String key, String newTopic, int queueNum)
           
 long DefaultMQPushConsumer.earliestMsgStoreTime(MessageQueue mq)
           
 long DefaultMQPullConsumer.earliestMsgStoreTime(MessageQueue mq)
           
 long MQPullConsumer.fetchConsumeOffset(MessageQueue mq, boolean fromStore)
          获取消费进度,返回-1表示出错
 long DefaultMQPullConsumer.fetchConsumeOffset(MessageQueue mq, boolean fromStore)
           
 Set<MessageQueue> MQPullConsumer.fetchMessageQueuesInBalance(String topic)
          根据topic获取MessageQueue,以均衡方式在组内多个成员之间分配
 Set<MessageQueue> DefaultMQPullConsumer.fetchMessageQueuesInBalance(String topic)
           
 Set<MessageQueue> MQConsumer.fetchSubscribeMessageQueues(String topic)
          根据topic获取对应的MessageQueue,是可被订阅的队列
P.S 从Consumer Cache中拿数据,可以频繁调用。
 Set<MessageQueue> DefaultMQPushConsumer.fetchSubscribeMessageQueues(String topic)
           
 Set<MessageQueue> DefaultMQPullConsumer.fetchSubscribeMessageQueues(String topic)
           
 long DefaultMQPushConsumer.maxOffset(MessageQueue mq)
           
 long DefaultMQPullConsumer.maxOffset(MessageQueue mq)
           
 long DefaultMQPushConsumer.minOffset(MessageQueue mq)
           
 long DefaultMQPullConsumer.minOffset(MessageQueue mq)
           
 PullResult MQPullConsumer.pull(MessageQueue mq, String subExpression, long offset, int maxNums)
          指定队列,主动拉取消息,即使没有消息,也立刻返回
 PullResult DefaultMQPullConsumer.pull(MessageQueue mq, String subExpression, long offset, int maxNums)
           
 void MQPullConsumer.pull(MessageQueue mq, String subExpression, long offset, int maxNums, PullCallback pullCallback)
           
 void DefaultMQPullConsumer.pull(MessageQueue mq, String subExpression, long offset, int maxNums, PullCallback pullCallback)
           
 PullResult MQPullConsumer.pullBlockIfNotFound(MessageQueue mq, String subExpression, long offset, int maxNums)
          指定队列,主动拉取消息,如果没有消息,则broker阻塞一段时间再返回(时间可配置)
broker阻塞期间,如果有消息,则立刻将消息返回
 PullResult DefaultMQPullConsumer.pullBlockIfNotFound(MessageQueue mq, String subExpression, long offset, int maxNums)
           
 void MQPullConsumer.pullBlockIfNotFound(MessageQueue mq, String subExpression, long offset, int maxNums, PullCallback pullCallback)
           
 void DefaultMQPullConsumer.pullBlockIfNotFound(MessageQueue mq, String subExpression, long offset, int maxNums, PullCallback pullCallback)
           
 QueryResult DefaultMQPushConsumer.queryMessage(String topic, String key, int maxNum, long begin, long end)
           
 QueryResult DefaultMQPullConsumer.queryMessage(String topic, String key, int maxNum, long begin, long end)
           
 long DefaultMQPushConsumer.searchOffset(MessageQueue mq, long timestamp)
           
 long DefaultMQPullConsumer.searchOffset(MessageQueue mq, long timestamp)
           
 void MQConsumer.sendMessageBack(MessageExt msg, int delayLevel)
          Consumer消费失败的消息可以选择重新发回到服务器端,并延时消费
会首先尝试将消息发回到消息之前存储的主机,此时只传送消息Offset,消息体不传送,不会占用网络带宽
如果发送失败,会自动重试发往其他主机,此时消息体也会传送
重传回去的消息只会被当前Consumer Group消费。
 void DefaultMQPushConsumer.sendMessageBack(MessageExt msg, int delayLevel)
           
 void DefaultMQPullConsumer.sendMessageBack(MessageExt msg, int delayLevel)
           
 void MQPushConsumer.start()
          启动服务,调用之前确保registerMessageListener与subscribe都已经调用
或者已经通过Spring注入了相关配置
 void MQPullConsumerScheduleService.start()
          启动服务
 void MQPullConsumer.start()
          启动服务
 void DefaultMQPushConsumer.start()
           
 void DefaultMQPullConsumer.start()
           
 void MQPushConsumer.subscribe(String topic, String subExpression)
          订阅消息,方法可以调用多次来订阅不同的Topic,也可覆盖之前Topic的订阅过滤表达式
 void DefaultMQPushConsumer.subscribe(String topic, String subExpression)
           
 void MQPullConsumer.updateConsumeOffset(MessageQueue mq, long offset)
          更新消费进度
只是更新Consumer缓存中的数据,如果是广播模式,则定时更新到本地存储
如果是集群模式,则定时更新到远端Broker

P.S.

 void DefaultMQPullConsumer.updateConsumeOffset(MessageQueue mq, long offset)
           
 MessageExt DefaultMQPushConsumer.viewMessage(String msgId)
           
 MessageExt DefaultMQPullConsumer.viewMessage(String msgId)
           
 

com.alibaba.rocketmq.client.consumer.storeMQClientException 的使用
 

抛出 MQClientExceptioncom.alibaba.rocketmq.client.consumer.store 中的方法
 void OffsetStore.load()
          加载Offset
 void LocalFileOffsetStore.load()
           
 

com.alibaba.rocketmq.client.hookMQClientException 的使用
 

抛出 MQClientExceptioncom.alibaba.rocketmq.client.hook 中的方法
 void CheckForbiddenHook.checkForbidden(CheckForbiddenContext context)
           
 

com.alibaba.rocketmq.client.implMQClientException 的使用
 

抛出 MQClientExceptioncom.alibaba.rocketmq.client.impl 中的方法
 void MQClientAPIImpl.createSubscriptionGroup(String addr, SubscriptionGroupConfig config, long timeoutMillis)
           
 void MQAdminImpl.createTopic(String key, String newTopic, int queueNum)
           
 void MQClientAPIImpl.createTopic(String addr, String defaultTopic, TopicConfig topicConfig, long timeoutMillis)
           
 void MQClientAPIImpl.deleteKVConfigByValue(String namespace, String projectGroup, long timeoutMillis)
          Name Server: 删除 value 对应的所有 key
 void MQClientAPIImpl.deleteKVConfigValue(String namespace, String key, long timeoutMillis)
          Name Server: 添加KV配置
 void MQClientAPIImpl.deleteSubscriptionGroup(String addr, String groupName, long timeoutMillis)
           
 void MQClientAPIImpl.deleteTopicInBroker(String addr, String topic, long timeoutMillis)
           
 void MQClientAPIImpl.deleteTopicInNameServer(String addr, String topic, long timeoutMillis)
           
 long MQAdminImpl.earliestMsgStoreTime(MessageQueue mq)
           
 List<MessageQueue> MQAdminImpl.fetchPublishMessageQueues(String topic)
           
 Set<MessageQueue> MQAdminImpl.fetchSubscribeMessageQueues(String topic)
           
 TopicRouteData MQClientAPIImpl.getDefaultTopicRouteInfoFromNameServer(String topic, long timeoutMillis)
          Name Server: 从Name Server获取 Default Topic 路由信息
 String MQClientAPIImpl.getKVConfigByValue(String namespace, String value, long timeoutMillis)
          Name Server: 通过 value 获取所有的 key 信息
 String MQClientAPIImpl.getKVConfigValue(String namespace, String key, long timeoutMillis)
          Name Server: 从Namesrv获取KV配置
 KVTable MQClientAPIImpl.getKVListByNamespace(String namespace, long timeoutMillis)
          Name Server: 获取指定Namespace下的所有KV
 String MQClientAPIImpl.getProjectGroupByIp(String ip, long timeoutMillis)
          Name Server: 通过 server ip 获取 project 信息
 TopicList MQClientAPIImpl.getTopicListFromNameServer(long timeoutMillis)
          Name Server: 从Name Server获取所有Topic列表
 TopicRouteData MQClientAPIImpl.getTopicRouteInfoFromNameServer(String topic, long timeoutMillis)
          Name Server: 从Name Server获取Topic路由信息
 TopicList MQClientAPIImpl.getTopicsByCluster(String cluster, long timeoutMillis)
          Name Server: 获取指定集群下的所有 topic
 Map<String,Map<MessageQueue,Long>> MQClientAPIImpl.invokeBrokerToGetConsumerStatus(String addr, String topic, String group, String clientAddr, long timeoutMillis)
          通知 broker 客户端订阅消息处理
 Map<MessageQueue,Long> MQClientAPIImpl.invokeBrokerToResetOffset(String addr, String topic, String group, long timestamp, boolean isForce, long timeoutMillis)
          通知 broker 重置 offset
 long MQAdminImpl.maxOffset(MessageQueue mq)
           
 long MQAdminImpl.minOffset(MessageQueue mq)
           
 void MQClientAPIImpl.putKVConfigValue(String namespace, String key, String value, long timeoutMillis)
          Name Server: 添加KV配置
 QueryResult MQAdminImpl.queryMessage(String topic, String key, int maxNum, long begin, long end)
           
 long MQAdminImpl.searchOffset(MessageQueue mq, long timestamp)
           
 MessageExt MQAdminImpl.viewMessage(String msgId)
           
 int MQClientAPIImpl.wipeWritePermOfBroker(String namesrvAddr, String brokerName, long timeoutMillis)
          Name Server: Broker下线前,清除Broker对应的权限
 

com.alibaba.rocketmq.client.impl.consumerMQClientException 的使用
 

抛出 MQClientExceptioncom.alibaba.rocketmq.client.impl.consumer 中的方法
 void DefaultMQPushConsumerImpl.createTopic(String key, String newTopic, int queueNum)
           
 void DefaultMQPullConsumerImpl.createTopic(String key, String newTopic, int queueNum)
           
 long DefaultMQPushConsumerImpl.earliestMsgStoreTime(MessageQueue mq)
           
 long DefaultMQPullConsumerImpl.earliestMsgStoreTime(MessageQueue mq)
           
 long DefaultMQPullConsumerImpl.fetchConsumeOffset(MessageQueue mq, boolean fromStore)
           
 Set<MessageQueue> DefaultMQPullConsumerImpl.fetchMessageQueuesInBalance(String topic)
           
 List<MessageQueue> DefaultMQPullConsumerImpl.fetchPublishMessageQueues(String topic)
           
 Set<MessageQueue> DefaultMQPushConsumerImpl.fetchSubscribeMessageQueues(String topic)
           
 Set<MessageQueue> DefaultMQPullConsumerImpl.fetchSubscribeMessageQueues(String topic)
           
 long DefaultMQPushConsumerImpl.maxOffset(MessageQueue mq)
           
 long DefaultMQPullConsumerImpl.maxOffset(MessageQueue mq)
           
 long DefaultMQPushConsumerImpl.minOffset(MessageQueue mq)
           
 long DefaultMQPullConsumerImpl.minOffset(MessageQueue mq)
           
 PullResult DefaultMQPullConsumerImpl.pull(MessageQueue mq, String subExpression, long offset, int maxNums)
           
 void DefaultMQPullConsumerImpl.pull(MessageQueue mq, String subExpression, long offset, int maxNums, PullCallback pullCallback)
           
 PullResult DefaultMQPullConsumerImpl.pullBlockIfNotFound(MessageQueue mq, String subExpression, long offset, int maxNums)
           
 void DefaultMQPullConsumerImpl.pullBlockIfNotFound(MessageQueue mq, String subExpression, long offset, int maxNums, PullCallback pullCallback)
           
 PullResult PullAPIWrapper.pullKernelImpl(MessageQueue mq, String subExpression, long subVersion, long offset, int maxNums, int sysFlag, long commitOffset, long brokerSuspendMaxTimeMillis, long timeoutMillis, CommunicationMode communicationMode, PullCallback pullCallback)
           
 QueryResult DefaultMQPushConsumerImpl.queryMessage(String topic, String key, int maxNum, long begin, long end)
           
 QueryResult DefaultMQPullConsumerImpl.queryMessage(String topic, String key, int maxNum, long begin, long end)
           
 void DefaultMQPushConsumerImpl.resetOffsetByTimeStamp(long timeStamp)
           
 long DefaultMQPushConsumerImpl.searchOffset(MessageQueue mq, long timestamp)
           
 long DefaultMQPullConsumerImpl.searchOffset(MessageQueue mq, long timestamp)
           
 void DefaultMQPushConsumerImpl.sendMessageBack(MessageExt msg, int delayLevel)
           
 void DefaultMQPullConsumerImpl.sendMessageBack(MessageExt msg, int delayLevel)
           
 void DefaultMQPushConsumerImpl.start()
           
 void DefaultMQPullConsumerImpl.start()
           
 void DefaultMQPushConsumerImpl.subscribe(String topic, String subExpression)
           
 void DefaultMQPullConsumerImpl.updateConsumeOffset(MessageQueue mq, long offset)
           
 MessageExt DefaultMQPushConsumerImpl.viewMessage(String msgId)
           
 MessageExt DefaultMQPullConsumerImpl.viewMessage(String msgId)
           
 

com.alibaba.rocketmq.client.impl.factoryMQClientException 的使用
 

抛出 MQClientExceptioncom.alibaba.rocketmq.client.impl.factory 中的方法
 void MQClientFactory.start()
           
 

com.alibaba.rocketmq.client.impl.producerMQClientException 的使用
 

抛出 MQClientExceptioncom.alibaba.rocketmq.client.impl.producer 中的方法
 void DefaultMQProducerImpl.createTopic(String key, String newTopic, int queueNum)
           
 long DefaultMQProducerImpl.earliestMsgStoreTime(MessageQueue mq)
           
 void DefaultMQProducerImpl.executeCheckForbiddenHook(CheckForbiddenContext context)
           
 List<MessageQueue> DefaultMQProducerImpl.fetchPublishMessageQueues(String topic)
           
 long DefaultMQProducerImpl.maxOffset(MessageQueue mq)
           
 long DefaultMQProducerImpl.minOffset(MessageQueue mq)
           
 QueryResult DefaultMQProducerImpl.queryMessage(String topic, String key, int maxNum, long begin, long end)
           
 long DefaultMQProducerImpl.searchOffset(MessageQueue mq, long timestamp)
           
 SendResult DefaultMQProducerImpl.send(Message msg)
          DEFAULT SYNC -------------------------------------------------------
 SendResult DefaultMQProducerImpl.send(Message msg, MessageQueue mq)
          KERNEL SYNC -------------------------------------------------------
 SendResult DefaultMQProducerImpl.send(Message msg, MessageQueueSelector selector, Object arg)
          SELECT SYNC -------------------------------------------------------
 void DefaultMQProducerImpl.send(Message msg, MessageQueueSelector selector, Object arg, SendCallback sendCallback)
          SELECT ASYNC -------------------------------------------------------
 void DefaultMQProducerImpl.send(Message msg, MessageQueue mq, SendCallback sendCallback)
          KERNEL ASYNC -------------------------------------------------------
 void DefaultMQProducerImpl.send(Message msg, SendCallback sendCallback)
          DEFAULT ASYNC -------------------------------------------------------
 TransactionSendResult DefaultMQProducerImpl.sendMessageInTransaction(Message msg, LocalTransactionExecuter tranExecuter, Object arg)
           
 void DefaultMQProducerImpl.sendOneway(Message msg)
          DEFAULT ONEWAY -------------------------------------------------------
 void DefaultMQProducerImpl.sendOneway(Message msg, MessageQueue mq)
          KERNEL ONEWAY -------------------------------------------------------
 void DefaultMQProducerImpl.sendOneway(Message msg, MessageQueueSelector selector, Object arg)
          SELECT ONEWAY -------------------------------------------------------
 void DefaultMQProducerImpl.start()
           
 void DefaultMQProducerImpl.start(boolean startFactory)
           
 MessageExt DefaultMQProducerImpl.viewMessage(String msgId)
           
 

com.alibaba.rocketmq.client.producerMQClientException 的使用
 

抛出 MQClientExceptioncom.alibaba.rocketmq.client.producer 中的方法
 void DefaultMQProducer.createTopic(String key, String newTopic, int queueNum)
           
 long DefaultMQProducer.earliestMsgStoreTime(MessageQueue mq)
           
 List<MessageQueue> MQProducer.fetchPublishMessageQueues(String topic)
          根据topic获取对应的MessageQueue,如果是顺序消息,则按照顺序消息配置返回
 List<MessageQueue> DefaultMQProducer.fetchPublishMessageQueues(String topic)
           
 long DefaultMQProducer.maxOffset(MessageQueue mq)
           
 long DefaultMQProducer.minOffset(MessageQueue mq)
           
 QueryResult DefaultMQProducer.queryMessage(String topic, String key, int maxNum, long begin, long end)
           
 long DefaultMQProducer.searchOffset(MessageQueue mq, long timestamp)
           
 SendResult MQProducer.send(Message msg)
          发送消息,同步调用
 SendResult DefaultMQProducer.send(Message msg)
           
 SendResult MQProducer.send(Message msg, MessageQueue mq)
          向指定队列发送消息,同步调用
 SendResult DefaultMQProducer.send(Message msg, MessageQueue mq)
           
 SendResult MQProducer.send(Message msg, MessageQueueSelector selector, Object arg)
          发送消息,可以自定义选择队列,队列的总数可能会由于Broker的启停变化
如果要保证消息严格有序,在向运维人员申请Topic时,需要特别说明
同步调用
 SendResult DefaultMQProducer.send(Message msg, MessageQueueSelector selector, Object arg)
           
 void MQProducer.send(Message msg, MessageQueueSelector selector, Object arg, SendCallback sendCallback)
          发送消息,可以自定义选择队列,队列的总数可能会由于Broker的启停变化
如果要保证消息严格有序,在向运维人员申请Topic时,需要特别说明
异步调用
 void DefaultMQProducer.send(Message msg, MessageQueueSelector selector, Object arg, SendCallback sendCallback)
           
 void MQProducer.send(Message msg, MessageQueue mq, SendCallback sendCallback)
          向指定队列发送消息,异步调用
 void DefaultMQProducer.send(Message msg, MessageQueue mq, SendCallback sendCallback)
           
 void MQProducer.send(Message msg, SendCallback sendCallback)
          发送消息,异步调用
 void DefaultMQProducer.send(Message msg, SendCallback sendCallback)
           
 TransactionSendResult TransactionMQProducer.sendMessageInTransaction(Message msg, LocalTransactionExecuter tranExecuter, Object arg)
           
 TransactionSendResult MQProducer.sendMessageInTransaction(Message msg, LocalTransactionExecuter tranExecuter, Object arg)
           
 TransactionSendResult DefaultMQProducer.sendMessageInTransaction(Message msg, LocalTransactionExecuter tranExecuter, Object arg)
           
 void MQProducer.sendOneway(Message msg)
          发送消息,Oneway形式,服务器不应答,无法保证消息是否成功到达服务器
 void DefaultMQProducer.sendOneway(Message msg)
           
 void MQProducer.sendOneway(Message msg, MessageQueue mq)
          向指定队列发送消息,Oneway形式,服务器不应答,无法保证消息是否成功到达服务器
 void DefaultMQProducer.sendOneway(Message msg, MessageQueue mq)
           
 void MQProducer.sendOneway(Message msg, MessageQueueSelector selector, Object arg)
          发送消息,可以自定义选择队列,队列的总数可能会由于Broker的启停变化
如果要保证消息严格有序,在向运维人员申请Topic时,需要特别说明
Oneway形式,服务器不应答,无法保证消息是否成功到达服务器
 void DefaultMQProducer.sendOneway(Message msg, MessageQueueSelector selector, Object arg)
           
 void TransactionMQProducer.start()
           
 void MQProducer.start()
          启动服务
 void DefaultMQProducer.start()
           
 MessageExt DefaultMQProducer.viewMessage(String msgId)
           
 



Copyright © 2012-2014. All Rights Reserved.