Skip to content

Commit

Permalink
Remove some v1 persistent datum processor.
Browse files Browse the repository at this point in the history
  • Loading branch information
KomachiSion committed Aug 29, 2022
1 parent e515915 commit 6edddcf
Show file tree
Hide file tree
Showing 9 changed files with 22 additions and 313 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
@Service
public class ServerStatusManager {

@Resource(name = "consistencyDelegate")
@Resource(name = "persistentConsistencyServiceDelegate")
private ConsistencyService consistencyService;

private final SwitchDomain switchDomain;
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,6 @@
package com.alibaba.nacos.naming.consistency;

import com.alibaba.nacos.naming.misc.UtilsAndCommons;
import com.alibaba.nacos.common.utils.StringUtils;

import static com.alibaba.nacos.naming.misc.UtilsAndCommons.RAFT_CACHE_FILE_PREFIX;

/**
* Key operations for data.
Expand All @@ -31,123 +28,17 @@ public class KeyBuilder {

public static final String NAMESPACE_KEY_CONNECTOR = "##";

private static final String EPHEMERAL_KEY_PREFIX = "ephemeral.";

public static final String SERVICE_META_KEY_PREFIX = "com.alibaba.nacos.naming.domains.meta.";

public static final String INSTANCE_LIST_KEY_PREFIX = "com.alibaba.nacos.naming.iplist.";

public static final String BRIEF_SERVICE_META_KEY_PREFIX = "meta.";

public static final String BRIEF_INSTANCE_LIST_KEY_PREFIX = "iplist.";

public static final String RESOURCE_KEY_SNAPSHOT = "snapshot";

public static final String RESOURCE_KEY_CHECKSUM = "checksum";

private static String buildEphemeralInstanceListKey(String namespaceId, String serviceName) {
return INSTANCE_LIST_KEY_PREFIX + EPHEMERAL_KEY_PREFIX + namespaceId + NAMESPACE_KEY_CONNECTOR + serviceName;
}

private static String buildPersistentInstanceListKey(String namespaceId, String serviceName) {
return INSTANCE_LIST_KEY_PREFIX + namespaceId + NAMESPACE_KEY_CONNECTOR + serviceName;
}

public static String buildInstanceListKey(String namespaceId, String serviceName, boolean ephemeral) {
return ephemeral ? buildEphemeralInstanceListKey(namespaceId, serviceName)
: buildPersistentInstanceListKey(namespaceId, serviceName);
}

public static String buildServiceMetaKey(String namespaceId, String serviceName) {
return SERVICE_META_KEY_PREFIX + namespaceId + NAMESPACE_KEY_CONNECTOR + serviceName;
}

public static String getSwitchDomainKey() {
public static String getSwitchDomainKey() {
return SERVICE_META_KEY_PREFIX + UtilsAndCommons.SWITCH_DOMAIN_NAME;
}

public static boolean matchEphemeralInstanceListKey(String key) {
return key.startsWith(INSTANCE_LIST_KEY_PREFIX + EPHEMERAL_KEY_PREFIX);
}

public static boolean matchInstanceListKey(String key) {
return key.startsWith(INSTANCE_LIST_KEY_PREFIX) || key.startsWith(BRIEF_INSTANCE_LIST_KEY_PREFIX);
}

public static boolean matchInstanceListKey(String key, String namespaceId, String serviceName) {
return matchInstanceListKey(key) && matchServiceName(key, namespaceId, serviceName);
}

public static boolean matchServiceMetaKey(String key) {
return key.startsWith(SERVICE_META_KEY_PREFIX) || key.startsWith(BRIEF_SERVICE_META_KEY_PREFIX);
}

public static boolean matchServiceMetaKey(String key, String namespaceId, String serviceName) {
return matchServiceMetaKey(key) && matchServiceName(key, namespaceId, serviceName);
}

public static boolean matchSwitchKey(String key) {
return key.endsWith(UtilsAndCommons.SWITCH_DOMAIN_NAME);
}

public static boolean matchServiceName(String key, String namespaceId, String serviceName) {
return key.endsWith(namespaceId + NAMESPACE_KEY_CONNECTOR + serviceName);
}

public static boolean matchEphemeralKey(String key) {
// currently only instance list has ephemeral type:
return matchEphemeralInstanceListKey(key);
}

public static boolean matchPersistentKey(String key) {
return !matchEphemeralKey(key);
}

public static String briefInstanceListkey(String key) {
return BRIEF_INSTANCE_LIST_KEY_PREFIX + key.split(INSTANCE_LIST_KEY_PREFIX)[1];
}

public static String briefServiceMetaKey(String key) {
return BRIEF_SERVICE_META_KEY_PREFIX + key.split(SERVICE_META_KEY_PREFIX)[1];
}

public static String detailInstanceListkey(String key) {
return INSTANCE_LIST_KEY_PREFIX.substring(0, INSTANCE_LIST_KEY_PREFIX.indexOf(BRIEF_INSTANCE_LIST_KEY_PREFIX))
+ key;
}

public static String detailServiceMetaKey(String key) {
return SERVICE_META_KEY_PREFIX.substring(0, SERVICE_META_KEY_PREFIX.indexOf(BRIEF_SERVICE_META_KEY_PREFIX))
+ key;
}

public static String getNamespace(String key) {

if (matchSwitchKey(key)) {
return StringUtils.EMPTY;
}

if (matchServiceMetaKey(key)) {
return key.split(NAMESPACE_KEY_CONNECTOR)[0].substring(SERVICE_META_KEY_PREFIX.length());
}

if (matchEphemeralInstanceListKey(key)) {
return key.split(NAMESPACE_KEY_CONNECTOR)[0]
.substring(INSTANCE_LIST_KEY_PREFIX.length() + EPHEMERAL_KEY_PREFIX.length());
}

if (matchInstanceListKey(key)) {
return key.split(NAMESPACE_KEY_CONNECTOR)[0].substring(INSTANCE_LIST_KEY_PREFIX.length());
}

return StringUtils.EMPTY;
}

public static String getServiceName(String key) {
return key.split(NAMESPACE_KEY_CONNECTOR)[1];
}

public static boolean isDatumCacheFile(String key) {
return key.startsWith(RAFT_CACHE_FILE_PREFIX);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import com.alibaba.nacos.naming.consistency.persistent.impl.StandalonePersistentServiceProcessor;
import com.alibaba.nacos.naming.pojo.Record;
import com.alibaba.nacos.sys.env.EnvUtil;
import org.springframework.context.annotation.DependsOn;
import org.springframework.stereotype.Component;

import java.util.Optional;
Expand All @@ -34,55 +35,52 @@
*
* @author xiweng.yy
*/
@DependsOn("ProtocolManager")
@Component("persistentConsistencyServiceDelegate")
public class PersistentConsistencyServiceDelegateImpl implements PersistentConsistencyService {

private final BasePersistentServiceProcessor newPersistentConsistencyService;
private final BasePersistentServiceProcessor persistentServiceProcessor;

public PersistentConsistencyServiceDelegateImpl(ProtocolManager protocolManager) throws Exception {
this.newPersistentConsistencyService = createNewPersistentServiceProcessor(protocolManager);
this.persistentServiceProcessor = createPersistentServiceProcessor(protocolManager);
}

@Override
public void put(String key, Record value) throws NacosException {
switchOne().put(key, value);
persistentServiceProcessor.put(key, value);
}

@Override
public void remove(String key) throws NacosException {
switchOne().remove(key);
persistentServiceProcessor.remove(key);
}

@Override
public Datum get(String key) throws NacosException {
return switchOne().get(key);
return persistentServiceProcessor.get(key);
}

@Override
public void listen(String key, RecordListener listener) throws NacosException {
newPersistentConsistencyService.listen(key, listener);
persistentServiceProcessor.listen(key, listener);
}

@Override
public void unListen(String key, RecordListener listener) throws NacosException {
newPersistentConsistencyService.unListen(key, listener);
persistentServiceProcessor.unListen(key, listener);
}

@Override
public boolean isAvailable() {
return switchOne().isAvailable();
return persistentServiceProcessor.isAvailable();
}

@Override
public Optional<String> getErrorMsg() {
return switchOne().getErrorMsg();
return persistentServiceProcessor.getErrorMsg();
}

private PersistentConsistencyService switchOne() {
return newPersistentConsistencyService;
}

private BasePersistentServiceProcessor createNewPersistentServiceProcessor(ProtocolManager protocolManager)
private BasePersistentServiceProcessor createPersistentServiceProcessor(ProtocolManager protocolManager)
throws Exception {
final BasePersistentServiceProcessor processor =
EnvUtil.getStandaloneMode() ? new StandalonePersistentServiceProcessor()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -91,22 +91,6 @@ public Map<String, ConcurrentHashSet<RecordListener>> getListeners() {
* @param <T> type
*/
public <T extends Record> void notify(final String key, final DataOperation action, final T value) {
if (listenerMap.containsKey(KeyBuilder.SERVICE_META_KEY_PREFIX)) {
if (KeyBuilder.matchServiceMetaKey(key) && !KeyBuilder.matchSwitchKey(key)) {
for (RecordListener listener : listenerMap.get(KeyBuilder.SERVICE_META_KEY_PREFIX)) {
try {
if (action == DataOperation.CHANGE) {
listener.onChange(key, value);
}
if (action == DataOperation.DELETE) {
listener.onDelete(key);
}
} catch (Throwable e) {
Loggers.RAFT.error("[NACOS-RAFT] error while notifying listener of key: {}", key, e);
}
}
}
}

if (!listenerMap.containsKey(key)) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -182,7 +182,7 @@ private void publishValueChangeEvent(final Op op, final BatchWriteRequest reques
for (int i = 0; i < keys.size(); i++) {
final String key = new String(keys.get(i));
// Ignore old 1.x version data
if (KeyBuilder.matchServiceMetaKey(key) || KeyBuilder.matchInstanceListKey(key)) {
if (!KeyBuilder.matchSwitchKey(key)) {
continue;
}
final Datum datum = serializer.deserialize(values.get(i), getDatumTypeFromKey(key));
Expand Down
Loading

0 comments on commit 6edddcf

Please sign in to comment.