Optimize code style and fix bugs (#7469)

This commit is contained in:
pengten 2022-01-09 22:28:27 +08:00 committed by GitHub
parent 27ed668695
commit 626f79ad51
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -67,7 +67,6 @@ import com.google.gson.Gson;
import com.google.gson.JsonObject; import com.google.gson.JsonObject;
import org.slf4j.Logger; import org.slf4j.Logger;
import java.io.File;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet; import java.util.HashSet;
@ -246,18 +245,6 @@ public class ClientWorker implements Closeable {
} }
} }
private void removeCache(String dataId, String group) {
String groupKey = GroupKey.getKey(dataId, group);
synchronized (cacheMap) {
Map<String, CacheData> copy = new HashMap<String, CacheData>(cacheMap.get());
copy.remove(groupKey);
cacheMap.set(copy);
}
LOGGER.info("[{}] [unsubscribe] {}", this.agent.getName(), groupKey);
MetricsMonitor.getListenConfigCountMonitor().set(cacheMap.get().size());
}
void removeCache(String dataId, String group, String tenant) { void removeCache(String dataId, String group, String tenant) {
String groupKey = GroupKey.getKeyTenant(dataId, group, tenant); String groupKey = GroupKey.getKeyTenant(dataId, group, tenant);
synchronized (cacheMap) { synchronized (cacheMap) {
@ -410,47 +397,6 @@ public class ClientWorker implements Closeable {
return this.agent.queryConfig(dataId, group, tenant, readTimeout, notify); return this.agent.queryConfig(dataId, group, tenant, readTimeout, notify);
} }
private void checkLocalConfig(String agentName, CacheData cacheData) {
final String dataId = cacheData.dataId;
final String group = cacheData.group;
final String tenant = cacheData.tenant;
File path = LocalConfigInfoProcessor.getFailoverFile(agentName, dataId, group, tenant);
if (!cacheData.isUseLocalConfigInfo() && path.exists()) {
String content = LocalConfigInfoProcessor.getFailover(agentName, dataId, group, tenant);
final String md5 = MD5Utils.md5Hex(content, Constants.ENCODE);
cacheData.setUseLocalConfigInfo(true);
cacheData.setLocalConfigInfoVersion(path.lastModified());
cacheData.setContent(content);
LOGGER.warn(
"[{}] [failover-change] failover file created. dataId={}, group={}, tenant={}, md5={}, content={}",
agentName, dataId, group, tenant, md5, ContentUtils.truncateContent(content));
return;
}
// If use local config info, then it doesn't notify business listener and notify after getting from server.
if (cacheData.isUseLocalConfigInfo() && !path.exists()) {
cacheData.setUseLocalConfigInfo(false);
LOGGER.warn("[{}] [failover-change] failover file deleted. dataId={}, group={}, tenant={}", agentName,
dataId, group, tenant);
return;
}
// When it changed.
if (cacheData.isUseLocalConfigInfo() && path.exists() && cacheData.getLocalConfigInfoVersion() != path
.lastModified()) {
String content = LocalConfigInfoProcessor.getFailover(agentName, dataId, group, tenant);
final String md5 = MD5Utils.md5Hex(content, Constants.ENCODE);
cacheData.setUseLocalConfigInfo(true);
cacheData.setLocalConfigInfoVersion(path.lastModified());
cacheData.setContent(content);
LOGGER.warn(
"[{}] [failover-change] failover file changed. dataId={}, group={}, tenant={}, md5={}, content={}",
agentName, dataId, group, tenant, md5, ContentUtils.truncateContent(content));
}
}
private String blank2defaultGroup(String group) { private String blank2defaultGroup(String group) {
return StringUtils.isBlank(group) ? Constants.DEFAULT_GROUP : group.trim(); return StringUtils.isBlank(group) ? Constants.DEFAULT_GROUP : group.trim();
} }
@ -599,25 +545,25 @@ public class ClientWorker implements Closeable {
@Override @Override
public void shutdown() { public void shutdown() {
synchronized (RpcClientFactory.getAllClientEntries()) { synchronized (RpcClientFactory.getAllClientEntries()) {
LOGGER.info("Trying to shutdown transport client " + this); LOGGER.info("Trying to shutdown transport client {}", this);
Set<Map.Entry<String, RpcClient>> allClientEntries = RpcClientFactory.getAllClientEntries(); Set<Map.Entry<String, RpcClient>> allClientEntries = RpcClientFactory.getAllClientEntries();
Iterator<Map.Entry<String, RpcClient>> iterator = allClientEntries.iterator(); Iterator<Map.Entry<String, RpcClient>> iterator = allClientEntries.iterator();
while (iterator.hasNext()) { while (iterator.hasNext()) {
Map.Entry<String, RpcClient> entry = iterator.next(); Map.Entry<String, RpcClient> entry = iterator.next();
if (entry.getKey().startsWith(uuid)) { if (entry.getKey().startsWith(uuid)) {
LOGGER.info("Trying to shutdown rpc client " + entry.getKey()); LOGGER.info("Trying to shutdown rpc client {}", entry.getKey());
try { try {
entry.getValue().shutdown(); entry.getValue().shutdown();
} catch (NacosException nacosException) { } catch (NacosException nacosException) {
nacosException.printStackTrace(); nacosException.printStackTrace();
} }
LOGGER.info("Remove rpc client " + entry.getKey()); LOGGER.info("Remove rpc client {}", entry.getKey());
iterator.remove(); iterator.remove();
} }
} }
LOGGER.info("Shutdown executor " + executor); LOGGER.info("Shutdown executor {}", executor);
executor.shutdown(); executor.shutdown();
Map<String, CacheData> stringCacheDataMap = cacheMap.get(); Map<String, CacheData> stringCacheDataMap = cacheMap.get();
for (Map.Entry<String, CacheData> entry : stringCacheDataMap.entrySet()) { for (Map.Entry<String, CacheData> entry : stringCacheDataMap.entrySet()) {
@ -724,9 +670,9 @@ public class ClientWorker implements Closeable {
} }
}); });
NotifyCenter.registerSubscriber(new Subscriber() { NotifyCenter.registerSubscriber(new Subscriber<ServerlistChangeEvent>() {
@Override @Override
public void onEvent(Event event) { public void onEvent(ServerlistChangeEvent event) {
rpcClientInner.onServerListChange(); rpcClientInner.onServerListChange();
} }
@ -858,11 +804,9 @@ public class ClientWorker implements Closeable {
if (!cacheData.getListeners().isEmpty()) { if (!cacheData.getListeners().isEmpty()) {
Long previousTimesStamp = timestampMap.get(groupKey); Long previousTimesStamp = timestampMap.get(groupKey);
if (previousTimesStamp != null) { if (previousTimesStamp != null && !cacheData.getLastModifiedTs().compareAndSet(previousTimesStamp,
if (!cacheData.getLastModifiedTs().compareAndSet(previousTimesStamp, System.currentTimeMillis())) {
System.currentTimeMillis())) { continue;
continue;
}
} }
cacheData.setSyncWithServer(true); cacheData.setSyncWithServer(true);
} }