Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

【WIP】增加一个根据 DataID 清理 Data 上的 Publisher 数据,以及忽略客户端发送 Publisher 的能力 #361

Closed
wants to merge 4 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,18 @@
package com.alipay.sofa.registry.common.model;

import com.alipay.sofa.registry.common.model.dataserver.DatumSummary;
import com.alipay.sofa.registry.common.model.sessionserver.SimplePublisher;
import com.alipay.sofa.registry.common.model.slot.filter.SyncAcceptorRequest;
import com.alipay.sofa.registry.common.model.slot.filter.SyncSlotAcceptorManager;
import com.alipay.sofa.registry.common.model.store.Publisher;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import java.util.*;
import org.apache.commons.collections.CollectionUtils;

import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
* @author xiaojian.xj
Expand Down Expand Up @@ -92,4 +99,23 @@ public static Publisher clonePublisher(Publisher publisher) {
newPub.setSessionProcessId(publisher.getSessionProcessId());
return newPub;
}

public static SimplePublisher convert(Publisher publisher) {
return new SimplePublisher(
publisher.getClientId(),
publisher.getSourceAddress().buildAddressString(),
publisher.getAppName()
);
}

public static List<SimplePublisher> convert(Collection<Publisher> publishers) {
if (CollectionUtils.isEmpty(publishers)) {
return Collections.emptyList();
}
List<SimplePublisher> ret = Lists.newArrayListWithCapacity(publishers.size());
for (Publisher publisher : publishers) {
ret.add(convert(publisher));
}
return ret;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,10 @@ public class ValueConstants {
DataInfo.toDataInfoId(
"session.blacklist.data", SESSION_PROVIDE_DATA_INSTANCE_ID, SESSION_PROVIDE_DATA_GROUP);

public static final String SESSION_DATAID_BLACKLIST_DATA_ID =
DataInfo.toDataInfoId(
"session.dataid.blacklist", SESSION_PROVIDE_DATA_INSTANCE_ID, SESSION_PROVIDE_DATA_GROUP);

public static final String CLIENT_OFF_ADDRESS_DATA_ID =
DataInfo.toDataInfoId(
"registry.client.off.list", SESSION_PROVIDE_DATA_INSTANCE_ID, SESSION_PROVIDE_DATA_GROUP);
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
package com.alipay.sofa.registry.common.model.sessionserver;

import com.alipay.sofa.registry.util.StringFormatter;

import java.io.Serializable;

/**
* @author huicha
* @date 2024/12/23
*/
public class QueryPublisherRequest implements Serializable {

private static final long serialVersionUID = 5295572570779995725L;

private final String dataInfoId;

public QueryPublisherRequest(String dataInfoId) {
this.dataInfoId = dataInfoId;
}

public String getDataInfoId() {
return dataInfoId;
}

@Override
public String toString() {
return StringFormatter.format("QueryPublisherRequest={}}", dataInfoId);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
package com.alipay.sofa.registry.common.model.sessionserver;

import com.alipay.sofa.registry.util.StringFormatter;

import java.io.Serializable;

/**
* @author huicha
* @date 2024/12/23
*/
public final class SimplePublisher implements Serializable {

private static final long serialVersionUID = 6861155219172594665L;

private final String clientId;

private final String sourceAddress;

private final String appName;

public SimplePublisher(String clientId, String sourceAddress, String appName) {
this.clientId = clientId;
this.sourceAddress = sourceAddress;
this.appName = appName;
}

public String getClientId() {
return clientId;
}

public String getSourceAddress() {
return sourceAddress;
}

public String getAppName() {
return appName;
}

@Override
public String toString() {
return StringFormatter.format(
"SimplePublisher{app={},clientId={},add={}}", appName, clientId, sourceAddress);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,50 +22,25 @@
import com.alipay.sofa.registry.remoting.bolt.exchange.BoltExchange;
import com.alipay.sofa.registry.remoting.exchange.Exchange;
import com.alipay.sofa.registry.remoting.jersey.exchange.JerseyExchange;
import com.alipay.sofa.registry.server.meta.bootstrap.config.MetaServerConfig;
import com.alipay.sofa.registry.server.meta.bootstrap.config.MetaServerConfigBean;
import com.alipay.sofa.registry.server.meta.bootstrap.config.MultiClusterMetaServerConfig;
import com.alipay.sofa.registry.server.meta.bootstrap.config.NodeConfig;
import com.alipay.sofa.registry.server.meta.bootstrap.config.NodeConfigBeanProperty;
import com.alipay.sofa.registry.server.meta.bootstrap.config.*;
import com.alipay.sofa.registry.server.meta.cleaner.AppRevisionCleaner;
import com.alipay.sofa.registry.server.meta.cleaner.InterfaceAppsIndexCleaner;
import com.alipay.sofa.registry.server.meta.lease.filter.DefaultForbiddenServerManager;
import com.alipay.sofa.registry.server.meta.lease.filter.RegistryForbiddenServerManager;
import com.alipay.sofa.registry.server.meta.provide.data.DefaultClientManagerService;
import com.alipay.sofa.registry.server.meta.provide.data.DefaultProvideDataService;
import com.alipay.sofa.registry.server.meta.provide.data.FetchStopPushService;
import com.alipay.sofa.registry.server.meta.provide.data.NodeOperatingService;
import com.alipay.sofa.registry.server.meta.provide.data.ProvideDataService;
import com.alipay.sofa.registry.server.meta.provide.data.*;
import com.alipay.sofa.registry.server.meta.remoting.DataNodeExchanger;
import com.alipay.sofa.registry.server.meta.remoting.MetaServerExchanger;
import com.alipay.sofa.registry.server.meta.remoting.SessionNodeExchanger;
import com.alipay.sofa.registry.server.meta.remoting.connection.DataConnectionManager;
import com.alipay.sofa.registry.server.meta.remoting.connection.MetaConnectionManager;
import com.alipay.sofa.registry.server.meta.remoting.connection.SessionConnectionManager;
import com.alipay.sofa.registry.server.meta.remoting.handler.FetchProvideDataRequestHandler;
import com.alipay.sofa.registry.server.meta.remoting.handler.FetchSystemPropertyRequestHandler;
import com.alipay.sofa.registry.server.meta.remoting.handler.GetSlotTableStatusRequestHandler;
import com.alipay.sofa.registry.server.meta.remoting.handler.HeartbeatRequestHandler;
import com.alipay.sofa.registry.server.meta.remoting.handler.RegistryForbiddenServerHandler;
import com.alipay.sofa.registry.server.meta.remoting.handler.*;
import com.alipay.sofa.registry.server.meta.remoting.meta.LocalMetaExchanger;
import com.alipay.sofa.registry.server.meta.remoting.meta.MetaServerRenewService;
import com.alipay.sofa.registry.server.meta.resource.BlacklistDataResource;
import com.alipay.sofa.registry.server.meta.resource.CircuitBreakerResources;
import com.alipay.sofa.registry.server.meta.resource.ClientManagerResource;
import com.alipay.sofa.registry.server.meta.resource.CompressResource;
import com.alipay.sofa.registry.server.meta.resource.HealthResource;
import com.alipay.sofa.registry.server.meta.resource.MetaCenterResource;
import com.alipay.sofa.registry.server.meta.resource.MetaDigestResource;
import com.alipay.sofa.registry.server.meta.resource.MetaLeaderResource;
import com.alipay.sofa.registry.server.meta.resource.ProvideDataResource;
import com.alipay.sofa.registry.server.meta.resource.RecoverConfigResource;
import com.alipay.sofa.registry.server.meta.resource.RegistryCoreOpsResource;
import com.alipay.sofa.registry.server.meta.resource.ShutdownSwitchResource;
import com.alipay.sofa.registry.server.meta.resource.SlotSyncResource;
import com.alipay.sofa.registry.server.meta.resource.SlotTableResource;
import com.alipay.sofa.registry.server.meta.resource.StopPushDataResource;
import com.alipay.sofa.registry.server.meta.resource.*;
import com.alipay.sofa.registry.server.meta.resource.filter.AuthRestFilter;
import com.alipay.sofa.registry.server.meta.resource.filter.LeaderAwareFilter;
import com.alipay.sofa.registry.server.meta.resource.filter.LeaderForwardFilter;
import com.alipay.sofa.registry.server.meta.slot.status.SlotTableStatusService;
import com.alipay.sofa.registry.server.shared.config.CommonConfig;
import com.alipay.sofa.registry.server.shared.remoting.AbstractServerHandler;
Expand All @@ -78,14 +53,6 @@
import com.alipay.sofa.registry.util.NamedThreadFactory;
import com.alipay.sofa.registry.util.OsUtils;
import com.alipay.sofa.registry.util.PropertySplitter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.ThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import org.glassfish.jersey.jackson.JacksonFeature;
import org.glassfish.jersey.server.ResourceConfig;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
Expand All @@ -94,6 +61,10 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

import java.util.ArrayList;
import java.util.Collection;
import java.util.concurrent.*;

/**
* @author shangyu.wh
* @version $Id: MetaServerConfiguration.java, v 0.1 2018-01-12 14:53 shangyu.wh Exp $
Expand Down Expand Up @@ -336,6 +307,11 @@ public LeaderAwareFilter leaderAwareFilter() {
return new LeaderAwareFilter();
}

@Bean
public LeaderForwardFilter leaderForwardFilter() {
return new LeaderForwardFilter();
}

@Bean
public AuthRestFilter authRestFilter() {
return new AuthRestFilter();
Expand Down Expand Up @@ -394,6 +370,12 @@ public BlacklistDataResource blacklistDataResource() {
return new BlacklistDataResource();
}

@Bean
@ConditionalOnMissingBean
public DataInfoIDBlacklistResource dataInfoIDBlacklistResource() {
return new DataInfoIDBlacklistResource();
}

@Bean
public ClientManagerResource clientManagerResource() {
return new ClientManagerResource();
Expand Down
Loading
Loading