Merge pull request #415 from wehotel/develop

This commit is contained in:
hongqiaowei
2022-03-30 16:04:45 +08:00
committed by GitHub
2 changed files with 33 additions and 19 deletions

View File

@@ -66,7 +66,16 @@ public abstract class FizzNacosHelper {
fizzNacosProperties.setApplicationContext(applicationContext); fizzNacosProperties.setApplicationContext(applicationContext);
if (fizzNacosProperties.getId() == null) { if (fizzNacosProperties.getId() == null) {
fizzNacosProperties.setId(fizzNacosProperties.getServerAddr()); String id = fizzNacosProperties.getServerAddr();
String namespace = fizzNacosProperties.getNamespace();
if (StringUtils.isNotBlank(namespace)) {
id = id + '_' + namespace;
}
String group = fizzNacosProperties.getGroup();
if (StringUtils.isNotBlank(group)) {
id = id + '_' + group;
}
fizzNacosProperties.setId(id);
} }
Environment env = applicationContext.getEnvironment(); Environment env = applicationContext.getEnvironment();
if (fizzNacosProperties.getService() == null) { if (fizzNacosProperties.getService() == null) {

View File

@@ -40,26 +40,26 @@ public class FizzNacosServiceRegistration extends FizzServiceRegistration {
private NamingService namingService; private NamingService namingService;
private final String groupName; private final String group;
private List<String> clusterNameList; private List<String> clusters;
private boolean useGroupName; private boolean useGroup;
private boolean userClusterName; private boolean userCluster;
public FizzNacosServiceRegistration(String id, NacosRegistration registration, NacosServiceRegistry serviceRegistry, NamingService namingService) { public FizzNacosServiceRegistration(String id, NacosRegistration registration, NacosServiceRegistry serviceRegistry, NamingService namingService) {
super(id, Type.NACOS, registration, serviceRegistry); super(id, Type.NACOS, registration, serviceRegistry);
this.namingService = namingService; this.namingService = namingService;
NacosDiscoveryProperties discoveryProperties = registration.getNacosDiscoveryProperties(); NacosDiscoveryProperties discoveryProperties = registration.getNacosDiscoveryProperties();
groupName = discoveryProperties.getGroup(); group = discoveryProperties.getGroup();
if (StringUtils.hasText(groupName)) { if (StringUtils.hasText(group)) {
useGroupName = true; useGroup = true;
} }
String clusterName = discoveryProperties.getClusterName(); String cluster = discoveryProperties.getClusterName();
if (StringUtils.hasText(clusterName)) { if (StringUtils.hasText(cluster)) {
userClusterName = true; userCluster = true;
clusterNameList = Collections.singletonList(clusterName); clusters = Collections.singletonList(cluster);
} }
} }
@@ -89,7 +89,12 @@ public class FizzNacosServiceRegistration extends FizzServiceRegistration {
@Override @Override
public List<String> getServices() { public List<String> getServices() {
try { try {
ListView<String> servicesOfServer = namingService.getServicesOfServer(1, Integer.MAX_VALUE); ListView<String> servicesOfServer;
if (useGroup) {
servicesOfServer = namingService.getServicesOfServer(1, Integer.MAX_VALUE, group);
} else {
servicesOfServer = namingService.getServicesOfServer(1, Integer.MAX_VALUE);
}
return servicesOfServer.getData(); return servicesOfServer.getData();
} catch (NacosException e) { } catch (NacosException e) {
throw new RuntimeException(e); throw new RuntimeException(e);
@@ -105,12 +110,12 @@ public class FizzNacosServiceRegistration extends FizzServiceRegistration {
public Instance getInstanceInfo(String service) { public Instance getInstanceInfo(String service) {
Instance instance = null; Instance instance = null;
try { try {
if (useGroupName && userClusterName) { if (useGroup && userCluster) {
instance = namingService.selectOneHealthyInstance(service, groupName, clusterNameList); instance = namingService.selectOneHealthyInstance(service, group, clusters);
} else if (useGroupName) { } else if (useGroup) {
instance = namingService.selectOneHealthyInstance(service, groupName); instance = namingService.selectOneHealthyInstance(service, group);
} else if (userClusterName) { } else if (userCluster) {
instance = namingService.selectOneHealthyInstance(service, clusterNameList); instance = namingService.selectOneHealthyInstance(service, clusters);
} else { } else {
instance = namingService.selectOneHealthyInstance(service); instance = namingService.selectOneHealthyInstance(service);
} }