Search in sources :

Example 1 with UnregisterClientRequestHeader

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

the class ClientManageProcessor method unregisterClient.

public RemotingCommand unregisterClient(ChannelHandlerContext ctx, RemotingCommand request) throws RemotingCommandException {
    final RemotingCommand response = RemotingCommand.createResponseCommand(UnregisterClientResponseHeader.class);
    final UnregisterClientRequestHeader requestHeader = (UnregisterClientRequestHeader) request.decodeCommandCustomHeader(UnregisterClientRequestHeader.class);
    ClientChannelInfo clientChannelInfo = new ClientChannelInfo(ctx.channel(), requestHeader.getClientID(), request.getLanguage(), request.getVersion());
    {
        final String group = requestHeader.getProducerGroup();
        if (group != null) {
            this.brokerController.getProducerManager().unregisterProducer(group, clientChannelInfo);
        }
    }
    {
        final String group = requestHeader.getConsumerGroup();
        if (group != null) {
            SubscriptionGroupConfig subscriptionGroupConfig = this.brokerController.getSubscriptionGroupManager().findSubscriptionGroupConfig(group);
            boolean isNotifyConsumerIdsChangedEnable = true;
            if (null != subscriptionGroupConfig) {
                isNotifyConsumerIdsChangedEnable = subscriptionGroupConfig.isNotifyConsumerIdsChangedEnable();
            }
            this.brokerController.getConsumerManager().unregisterConsumer(group, clientChannelInfo, isNotifyConsumerIdsChangedEnable);
        }
    }
    response.setCode(ResponseCode.SUCCESS);
    response.setRemark(null);
    return response;
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) UnregisterClientRequestHeader(org.apache.rocketmq.common.protocol.header.UnregisterClientRequestHeader) ClientChannelInfo(org.apache.rocketmq.broker.client.ClientChannelInfo) SubscriptionGroupConfig(org.apache.rocketmq.common.subscription.SubscriptionGroupConfig)

Example 2 with UnregisterClientRequestHeader

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

the class MQClientAPIImpl method unregisterClient.

public void unregisterClient(final String addr, final String clientID, final String producerGroup, final String consumerGroup, final long timeoutMillis) throws RemotingException, MQBrokerException, InterruptedException {
    final UnregisterClientRequestHeader requestHeader = new UnregisterClientRequestHeader();
    requestHeader.setClientID(clientID);
    requestHeader.setProducerGroup(producerGroup);
    requestHeader.setConsumerGroup(consumerGroup);
    RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.UNREGISTER_CLIENT, requestHeader);
    RemotingCommand response = this.remotingClient.invokeSync(addr, request, timeoutMillis);
    assert response != null;
    switch(response.getCode()) {
        case ResponseCode.SUCCESS:
            {
                return;
            }
        default:
            break;
    }
    throw new MQBrokerException(response.getCode(), response.getRemark());
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) UnregisterClientRequestHeader(org.apache.rocketmq.common.protocol.header.UnregisterClientRequestHeader) MQBrokerException(org.apache.rocketmq.client.exception.MQBrokerException)

Example 3 with UnregisterClientRequestHeader

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

the class ClientManageProcessor method unregisterClient.

public RemotingCommand unregisterClient(ChannelHandlerContext ctx, RemotingCommand request) throws RemotingCommandException {
    final RemotingCommand response = RemotingCommand.createResponseCommand(UnregisterClientResponseHeader.class);
    final UnregisterClientRequestHeader requestHeader = (UnregisterClientRequestHeader) request.decodeCommandCustomHeader(UnregisterClientRequestHeader.class);
    ClientChannelInfo clientChannelInfo = new ClientChannelInfo(ctx.channel(), requestHeader.getClientID(), request.getLanguage(), request.getVersion());
    {
        final String group = requestHeader.getProducerGroup();
        if (group != null) {
            this.brokerController.getProducerManager().unregisterProducer(group, clientChannelInfo);
        }
    }
    {
        final String group = requestHeader.getConsumerGroup();
        if (group != null) {
            SubscriptionGroupConfig subscriptionGroupConfig = this.brokerController.getSubscriptionGroupManager().findSubscriptionGroupConfig(group);
            boolean isNotifyConsumerIdsChangedEnable = true;
            if (null != subscriptionGroupConfig) {
                isNotifyConsumerIdsChangedEnable = subscriptionGroupConfig.isNotifyConsumerIdsChangedEnable();
            }
            this.brokerController.getConsumerManager().unregisterConsumer(group, clientChannelInfo, isNotifyConsumerIdsChangedEnable);
        }
    }
    response.setCode(ResponseCode.SUCCESS);
    response.setRemark(null);
    return response;
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) UnregisterClientRequestHeader(org.apache.rocketmq.common.protocol.header.UnregisterClientRequestHeader) ClientChannelInfo(org.apache.rocketmq.broker.client.ClientChannelInfo) SubscriptionGroupConfig(org.apache.rocketmq.common.subscription.SubscriptionGroupConfig)

Example 4 with UnregisterClientRequestHeader

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

the class ClientManageProcessorTest method createUnRegisterConsumerCommand.

private RemotingCommand createUnRegisterConsumerCommand() {
    UnregisterClientRequestHeader requestHeader = new UnregisterClientRequestHeader();
    requestHeader.setClientID(clientId);
    requestHeader.setConsumerGroup(group);
    RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.UNREGISTER_CLIENT, requestHeader);
    request.setLanguage(LanguageCode.JAVA);
    request.setVersion(100);
    request.makeCustomHeaderToNet();
    return request;
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) UnregisterClientRequestHeader(org.apache.rocketmq.common.protocol.header.UnregisterClientRequestHeader)

Example 5 with UnregisterClientRequestHeader

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

the class ClientManageProcessorTest method createUnRegisterProducerCommand.

private RemotingCommand createUnRegisterProducerCommand() {
    UnregisterClientRequestHeader requestHeader = new UnregisterClientRequestHeader();
    requestHeader.setClientID(clientId);
    requestHeader.setProducerGroup(group);
    RemotingCommand request = RemotingCommand.createRequestCommand(RequestCode.UNREGISTER_CLIENT, requestHeader);
    request.setLanguage(LanguageCode.JAVA);
    request.setVersion(100);
    request.makeCustomHeaderToNet();
    return request;
}
Also used : RemotingCommand(org.apache.rocketmq.remoting.protocol.RemotingCommand) UnregisterClientRequestHeader(org.apache.rocketmq.common.protocol.header.UnregisterClientRequestHeader)

Aggregations

UnregisterClientRequestHeader (org.apache.rocketmq.common.protocol.header.UnregisterClientRequestHeader)8 RemotingCommand (org.apache.rocketmq.remoting.protocol.RemotingCommand)8 ClientChannelInfo (org.apache.rocketmq.broker.client.ClientChannelInfo)2 MQBrokerException (org.apache.rocketmq.client.exception.MQBrokerException)2 SubscriptionGroupConfig (org.apache.rocketmq.common.subscription.SubscriptionGroupConfig)2