Search in sources :

Example 1 with GetTopicStatsInfoRequestHeader

use of org.apache.rocketmq.common.protocol.header.GetTopicStatsInfoRequestHeader in project rocketmq-rocketmq-all-4.1.0-incubating by lirenzuo.

the class MQClientAPIImpl method getTopicStatsInfo.

public TopicStatsTable getTopicStatsInfo(final String addr, final String topic, final long timeoutMillis) throws InterruptedException, RemotingTimeoutException, RemotingSendRequestException, RemotingConnectException, MQBrokerException {
    GetTopicStatsInfoRequestHeader requestHeader = new GetTopicStatsInfoRequestHeader();
    requestHeader.setTopic(topic);
    RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.GET_TOPIC_STATS_INFO, requestHeader);
    RemotingCommand response = this.remotingClient.invokeSync(MixAll.brokerVIPChannel(this.clientConfig.isVipChannelEnabled(), addr), request, timeoutMillis);
    switch(response.getCode()) {
        case ResponseCode.SUCCESS:
            {
                TopicStatsTable topicStatsTable = TopicStatsTable.decode(response.getBody(), TopicStatsTable.class);
                return topicStatsTable;
            }
        default:
            break;
    }
    throw new MQBrokerException(response.getCode(), response.getRemark());
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) GetTopicStatsInfoRequestHeader(org.apache.rocketmq.common.protocol.header.GetTopicStatsInfoRequestHeader) TopicStatsTable(org.apache.rocketmq.common.admin.TopicStatsTable) MQBrokerException(org.apache.rocketmq.client.exception.MQBrokerException)

Example 2 with GetTopicStatsInfoRequestHeader

use of org.apache.rocketmq.common.protocol.header.GetTopicStatsInfoRequestHeader in project rocketmq-rocketmq-all-4.1.0-incubating by lirenzuo.

the class AdminBrokerProcessor method getTopicStatsInfo.

private RemotingCommand getTopicStatsInfo(ChannelHandlerContext ctx, RemotingCommand request) throws RemotingCommandException {
    final RemotingCommand response = RemotingCommand.createResponseCommand(null);
    final GetTopicStatsInfoRequestHeader requestHeader = (GetTopicStatsInfoRequestHeader) request.decodeCommandCustomHeader(GetTopicStatsInfoRequestHeader.class);
    final String topic = requestHeader.getTopic();
    TopicConfig topicConfig = this.brokerController.getTopicConfigManager().selectTopicConfig(topic);
    if (null == topicConfig) {
        response.setCode(ResponseCode.TOPIC_NOT_EXIST);
        response.setRemark("topic[" + topic + "] not exist");
        return response;
    }
    TopicStatsTable topicStatsTable = new TopicStatsTable();
    for (int i = 0; i < topicConfig.getWriteQueueNums(); i++) {
        MessageQueue mq = new MessageQueue();
        mq.setTopic(topic);
        mq.setBrokerName(this.brokerController.getBrokerConfig().getBrokerName());
        mq.setQueueId(i);
        TopicOffset topicOffset = new TopicOffset();
        long min = this.brokerController.getMessageStore().getMinOffsetInQueue(topic, i);
        if (min < 0)
            min = 0;
        long max = this.brokerController.getMessageStore().getMaxOffsetInQueue(topic, i);
        if (max < 0)
            max = 0;
        long timestamp = 0;
        if (max > 0) {
            timestamp = this.brokerController.getMessageStore().getMessageStoreTimeStamp(topic, i, max - 1);
        }
        topicOffset.setMinOffset(min);
        topicOffset.setMaxOffset(max);
        topicOffset.setLastUpdateTimestamp(timestamp);
        topicStatsTable.getOffsetTable().put(mq, topicOffset);
    }
    byte[] body = topicStatsTable.encode();
    response.setBody(body);
    response.setCode(ResponseCode.SUCCESS);
    response.setRemark(null);
    return response;
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) TopicOffset(org.apache.rocketmq.common.admin.TopicOffset) GetTopicStatsInfoRequestHeader(org.apache.rocketmq.common.protocol.header.GetTopicStatsInfoRequestHeader) MessageQueue(org.apache.rocketmq.common.message.MessageQueue) TopicStatsTable(org.apache.rocketmq.common.admin.TopicStatsTable) TopicConfig(org.apache.rocketmq.common.TopicConfig)

Example 3 with GetTopicStatsInfoRequestHeader

use of org.apache.rocketmq.common.protocol.header.GetTopicStatsInfoRequestHeader in project rocketmq by apache.

the class MQClientAPIImpl method getTopicStatsInfo.

public TopicStatsTable getTopicStatsInfo(final String addr, final String topic, final long timeoutMillis) throws InterruptedException, RemotingTimeoutException, RemotingSendRequestException, RemotingConnectException, MQBrokerException {
    GetTopicStatsInfoRequestHeader requestHeader = new GetTopicStatsInfoRequestHeader();
    requestHeader.setTopic(topic);
    RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.GET_TOPIC_STATS_INFO, requestHeader);
    RemotingCommand response = this.remotingClient.invokeSync(MixAll.brokerVIPChannel(this.clientConfig.isVipChannelEnabled(), addr), request, timeoutMillis);
    switch(response.getCode()) {
        case ResponseCode.SUCCESS:
            {
                TopicStatsTable topicStatsTable = TopicStatsTable.decode(response.getBody(), TopicStatsTable.class);
                return topicStatsTable;
            }
        default:
            break;
    }
    throw new MQBrokerException(response.getCode(), response.getRemark());
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) GetTopicStatsInfoRequestHeader(org.apache.rocketmq.common.protocol.header.GetTopicStatsInfoRequestHeader) TopicStatsTable(org.apache.rocketmq.common.admin.TopicStatsTable) MQBrokerException(org.apache.rocketmq.client.exception.MQBrokerException)

Example 4 with GetTopicStatsInfoRequestHeader

use of org.apache.rocketmq.common.protocol.header.GetTopicStatsInfoRequestHeader in project rocketmq by apache.

the class AdminBrokerProcessor method getTopicStatsInfo.

private RemotingCommand getTopicStatsInfo(ChannelHandlerContext ctx, RemotingCommand request) throws RemotingCommandException {
    final RemotingCommand response = RemotingCommand.createResponseCommand(null);
    final GetTopicStatsInfoRequestHeader requestHeader = (GetTopicStatsInfoRequestHeader) request.decodeCommandCustomHeader(GetTopicStatsInfoRequestHeader.class);
    final String topic = requestHeader.getTopic();
    TopicConfig topicConfig = this.brokerController.getTopicConfigManager().selectTopicConfig(topic);
    if (null == topicConfig) {
        response.setCode(ResponseCode.TOPIC_NOT_EXIST);
        response.setRemark("topic[" + topic + "] not exist");
        return response;
    }
    TopicStatsTable topicStatsTable = new TopicStatsTable();
    for (int i = 0; i < topicConfig.getWriteQueueNums(); i++) {
        MessageQueue mq = new MessageQueue();
        mq.setTopic(topic);
        mq.setBrokerName(this.brokerController.getBrokerConfig().getBrokerName());
        mq.setQueueId(i);
        TopicOffset topicOffset = new TopicOffset();
        long min = this.brokerController.getMessageStore().getMinOffsetInQueue(topic, i);
        if (min < 0)
            min = 0;
        long max = this.brokerController.getMessageStore().getMaxOffsetInQueue(topic, i);
        if (max < 0)
            max = 0;
        long timestamp = 0;
        if (max > 0) {
            timestamp = this.brokerController.getMessageStore().getMessageStoreTimeStamp(topic, i, max - 1);
        }
        topicOffset.setMinOffset(min);
        topicOffset.setMaxOffset(max);
        topicOffset.setLastUpdateTimestamp(timestamp);
        topicStatsTable.getOffsetTable().put(mq, topicOffset);
    }
    byte[] body = topicStatsTable.encode();
    response.setBody(body);
    response.setCode(ResponseCode.SUCCESS);
    response.setRemark(null);
    return response;
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) TopicOffset(org.apache.rocketmq.common.admin.TopicOffset) GetTopicStatsInfoRequestHeader(org.apache.rocketmq.common.protocol.header.GetTopicStatsInfoRequestHeader) MessageQueue(org.apache.rocketmq.common.message.MessageQueue) TopicStatsTable(org.apache.rocketmq.common.admin.TopicStatsTable) TopicConfig(org.apache.rocketmq.common.TopicConfig)

Aggregations

TopicStatsTable (org.apache.rocketmq.common.admin.TopicStatsTable)4 GetTopicStatsInfoRequestHeader (org.apache.rocketmq.common.protocol.header.GetTopicStatsInfoRequestHeader)4 RemotingCommand (org.apache.rocketmq.remoting.protocol.RemotingCommand)4 MQBrokerException (org.apache.rocketmq.client.exception.MQBrokerException)2 TopicConfig (org.apache.rocketmq.common.TopicConfig)2 TopicOffset (org.apache.rocketmq.common.admin.TopicOffset)2 MessageQueue (org.apache.rocketmq.common.message.MessageQueue)2