private async Task UnregisterBrokerToAllNameServers() { var request = new BrokerUnRegistrationRequest { BrokerInfo = Setting.BrokerInfo }; foreach (var remotingClient in _nameServerRemotingClientList) { await UnregisterBrokerToNameServer(request, remotingClient); } }
public void UnregisterBroker(BrokerUnRegistrationRequest request) { using (_asyncLock.Lock()) { var brokerInfo = request.BrokerInfo; var cluster = _clusterDict.GetOrAdd(brokerInfo.ClusterName, x => new Cluster { ClusterName = x }); var brokerGroup = cluster.BrokerGroups.GetOrAdd(brokerInfo.GroupName, x => new BrokerGroup { GroupName = x }); if (brokerGroup.Brokers.TryRemove(brokerInfo.BrokerName, out Broker removed)) { _logger.InfoFormat("Unregistered broker, brokerInfo: {0}", _jsonSerializer.Serialize(removed.BrokerInfo)); } } }
private void UnregisterBrokerToNameServer(BrokerUnRegistrationRequest request, SocketRemotingClient remotingClient) { var nameServerAddress = remotingClient.ServerEndPoint.ToAddress(); try { var data = _binarySerializer.Serialize(request); var remotingRequest = new RemotingRequest((int)NameServerRequestCode.UnregisterBroker, data); var remotingResponse = remotingClient.InvokeSync(remotingRequest, 5 * 1000); if (remotingResponse.Code != ResponseCode.Success) { _logger.Error(string.Format("Unregister broker from name server failed, brokerInfo: {0}, nameServerAddress: {1}, remoting response code: {2}, errorMessage: {3}", request.BrokerInfo, nameServerAddress, remotingResponse.Code, Encoding.UTF8.GetString(remotingResponse.Body))); } } catch (Exception ex) { _logger.Error(string.Format("Unregister broker from name server has exception, brokerInfo: {0}, nameServerAddress: {1}", request.BrokerInfo, nameServerAddress), ex); } }