public class DefaultMQPushConsumer extends ClientConfig implements MQPushConsumer
| 限定符和类型 | 字段和说明 |
|---|---|
protected DefaultMQPushConsumerImpl |
defaultMQPushConsumerImpl |
| 构造器和说明 |
|---|
DefaultMQPushConsumer() |
DefaultMQPushConsumer(String consumerGroup) |
| 限定符和类型 | 方法和说明 |
|---|---|
void |
createTopic(String key,
String newTopic,
int queueNum)
创建topic
|
long |
earliestMsgStoreTime(MessageQueue mq)
向服务器查询队列保存的最早消息对应的存储时间
|
Set<MessageQueue> |
fetchSubscribeMessageQueues(String topic)
根据topic获取对应的MessageQueue,是可被订阅的队列
P.S 从Consumer Cache中拿数据,可以频繁调用。 |
AllocateMessageQueueStrategy |
getAllocateMessageQueueStrategy() |
int |
getConsumeConcurrentlyMaxSpan() |
ConsumeFromWhere |
getConsumeFromWhere() |
int |
getConsumeMessageBatchMaxSize() |
String |
getConsumerGroup() |
int |
getConsumeThreadMax() |
int |
getConsumeThreadMin() |
DefaultMQPushConsumerImpl |
getDefaultMQPushConsumerImpl() |
MessageListener |
getMessageListener() |
MessageModel |
getMessageModel() |
OffsetStore |
getOffsetStore() |
int |
getPullBatchSize() |
long |
getPullInterval() |
int |
getPullThresholdForQueue() |
Map<String,String> |
getSubscription() |
long |
maxOffset(MessageQueue mq)
向服务器查询队列最大Offset PS: 最大Offset无对应消息,减1有消息
|
long |
minOffset(MessageQueue mq)
向服务器查询队列最小Offset PS: 最小Offset有对应消息
|
QueryResult |
queryMessage(String topic,
String key,
int maxNum,
long begin,
long end)
根据消息Key查询消息
|
void |
registerMessageListener(MessageListener messageListener)
注册消息监听器,一个Consumer只能有一个监听器
|
void |
resume()
消费线程恢复,继续消费
|
long |
searchOffset(MessageQueue mq,
long timestamp)
根据时间查询对应的offset,精确到毫秒
P.S. |
void |
sendMessageBack(MessageExt msg,
int delayLevel)
Consumer消费失败的消息可以选择重新发回到服务器端,并延时消费
会首先尝试将消息发回到消息之前存储的主机,此时只传送消息Offset,消息体不传送,不会占用网络带宽 如果发送失败,会自动重试发往其他主机,此时消息体也会传送 重传回去的消息只会被当前Consumer Group消费。 |
void |
setAllocateMessageQueueStrategy(AllocateMessageQueueStrategy allocateMessageQueueStrategy) |
void |
setConsumeConcurrentlyMaxSpan(int consumeConcurrentlyMaxSpan) |
void |
setConsumeFromWhere(ConsumeFromWhere consumeFromWhere) |
void |
setConsumeMessageBatchMaxSize(int consumeMessageBatchMaxSize) |
void |
setConsumerGroup(String consumerGroup) |
void |
setConsumeThreadMax(int consumeThreadMax) |
void |
setConsumeThreadMin(int consumeThreadMin) |
void |
setMessageListener(MessageListener messageListener) |
void |
setMessageModel(MessageModel messageModel) |
void |
setOffsetStore(OffsetStore offsetStore) |
void |
setPullBatchSize(int pullBatchSize) |
void |
setPullInterval(long pullInterval) |
void |
setPullThresholdForQueue(int pullThresholdForQueue) |
void |
setSubscription(Map<String,String> subscription) |
void |
shutdown()
关闭服务,一旦关闭,此对象将不可用
|
void |
start()
启动服务,调用之前确保registerMessageListener与subscribe都已经调用
或者已经通过Spring注入了相关配置 |
void |
subscribe(String topic,
String subExpression)
订阅消息,方法可以调用多次来订阅不同的Topic,也可覆盖之前Topic的订阅过滤表达式
|
void |
suspend()
消费线程挂起,暂停消费
|
void |
unsubscribe(String topic)
取消订阅,从当前订阅组内注销,消息会被订阅组内其他订阅者订阅
|
void |
updateCorePoolSize(int corePoolSize)
动态调整消费线程池线程数量
|
MessageExt |
viewMessage(String msgId)
根据消息ID,从服务器获取完整的消息
|
buildMQClientId, cloneClientConfig, getClientCallbackExecutorThreads, getClientIP, getHeartbeatBrokerInterval, getInstanceName, getNamesrvAddr, getPersistConsumerOffsetInterval, getPollNameServerInteval, resetClientConfig, setClientCallbackExecutorThreads, setClientIP, setHeartbeatBrokerInterval, setInstanceName, setNamesrvAddr, setPersistConsumerOffsetInterval, setPollNameServerInteval, toStringprotected final transient DefaultMQPushConsumerImpl defaultMQPushConsumerImpl
public DefaultMQPushConsumer()
public DefaultMQPushConsumer(String consumerGroup)
public void createTopic(String key, String newTopic, int queueNum) throws MQClientException
MQAdmincreateTopic 在接口中 MQAdminkey - 请向运维人员申请newTopic - 要创建的新topicqueueNum - 新topic队列数MQClientExceptionpublic long searchOffset(MessageQueue mq, long timestamp) throws MQClientException
MQAdminsearchOffset 在接口中 MQAdminmq - 队列timestamp - 毫秒形式时间戳MQClientExceptionpublic long maxOffset(MessageQueue mq) throws MQClientException
MQAdminmaxOffset 在接口中 MQAdminmq - 队列MQClientExceptionpublic long minOffset(MessageQueue mq) throws MQClientException
MQAdminminOffset 在接口中 MQAdminmq - 队列MQClientExceptionpublic long earliestMsgStoreTime(MessageQueue mq) throws MQClientException
MQAdminearliestMsgStoreTime 在接口中 MQAdminmq - 队列MQClientExceptionpublic MessageExt viewMessage(String msgId) throws com.alibaba.rocketmq.remoting.exception.RemotingException, MQBrokerException, InterruptedException, MQClientException
MQAdminviewMessage 在接口中 MQAdmincom.alibaba.rocketmq.remoting.exception.RemotingExceptionMQBrokerExceptionInterruptedExceptionMQClientExceptionpublic QueryResult queryMessage(String topic, String key, int maxNum, long begin, long end) throws MQClientException, InterruptedException
MQAdminqueryMessage 在接口中 MQAdmintopic - 消息主题key - 消息关键词maxNum - 查询最大条数begin - 起始时间戳end - 结束时间戳MQClientExceptionInterruptedExceptionpublic AllocateMessageQueueStrategy getAllocateMessageQueueStrategy()
public void setAllocateMessageQueueStrategy(AllocateMessageQueueStrategy allocateMessageQueueStrategy)
public int getConsumeConcurrentlyMaxSpan()
public void setConsumeConcurrentlyMaxSpan(int consumeConcurrentlyMaxSpan)
public ConsumeFromWhere getConsumeFromWhere()
public void setConsumeFromWhere(ConsumeFromWhere consumeFromWhere)
public int getConsumeMessageBatchMaxSize()
public void setConsumeMessageBatchMaxSize(int consumeMessageBatchMaxSize)
public String getConsumerGroup()
public void setConsumerGroup(String consumerGroup)
public int getConsumeThreadMax()
public void setConsumeThreadMax(int consumeThreadMax)
public int getConsumeThreadMin()
public void setConsumeThreadMin(int consumeThreadMin)
public DefaultMQPushConsumerImpl getDefaultMQPushConsumerImpl()
public MessageListener getMessageListener()
public void setMessageListener(MessageListener messageListener)
public MessageModel getMessageModel()
public void setMessageModel(MessageModel messageModel)
public int getPullBatchSize()
public void setPullBatchSize(int pullBatchSize)
public long getPullInterval()
public void setPullInterval(long pullInterval)
public int getPullThresholdForQueue()
public void setPullThresholdForQueue(int pullThresholdForQueue)
public void sendMessageBack(MessageExt msg, int delayLevel) throws com.alibaba.rocketmq.remoting.exception.RemotingException, MQBrokerException, InterruptedException, MQClientException
MQConsumersendMessageBack 在接口中 MQConsumercom.alibaba.rocketmq.remoting.exception.RemotingExceptionMQBrokerExceptionInterruptedExceptionMQClientExceptionpublic Set<MessageQueue> fetchSubscribeMessageQueues(String topic) throws MQClientException
MQConsumerfetchSubscribeMessageQueues 在接口中 MQConsumertopic - 消息TopicMQClientExceptionpublic void start()
throws MQClientException
MQPushConsumerstart 在接口中 MQPushConsumerMQClientExceptionpublic void shutdown()
MQPushConsumershutdown 在接口中 MQPushConsumerpublic void registerMessageListener(MessageListener messageListener)
MQPushConsumerregisterMessageListener 在接口中 MQPushConsumerpublic void subscribe(String topic, String subExpression) throws MQClientException
MQPushConsumersubscribe 在接口中 MQPushConsumertopic - 消息主题subExpression - 订阅过滤表达式字符串,broker依据此表达式进行过滤。目前只支持或运算MQClientExceptionpublic void unsubscribe(String topic)
MQPushConsumerunsubscribe 在接口中 MQPushConsumertopic - 消息主题public void updateCorePoolSize(int corePoolSize)
MQPushConsumerupdateCorePoolSize 在接口中 MQPushConsumerpublic void suspend()
MQPushConsumersuspend 在接口中 MQPushConsumerpublic void resume()
MQPushConsumerresume 在接口中 MQPushConsumerpublic OffsetStore getOffsetStore()
public void setOffsetStore(OffsetStore offsetStore)
Copyright © 2012–2013. All rights reserved.