public static String getCallerInfo(String serviceName, String versionName, String methodName) { final boolean isLocal = SoaSystemEnvProperties.SOA_REMOTING_MODE.equals("local"); String callerInfo = null; List<ServiceInfo> usableList; ServiceInfos serviceInfos; if (isLocal) { usableList = new ArrayList<>(); serviceInfos = new ServiceInfos(false, usableList); } else { serviceInfos = RegistryAgentProxy.getCurrentInstance(RegistryAgentProxy.Type.Client).loadMatchedServices(serviceName, versionName, true); usableList = serviceInfos.getServiceInfoList(); } String serviceKey = serviceName + "." + versionName + "." + methodName + ".consumer"; LoadBalanceStratage balance = getLoadBalanceStratage(serviceInfos.isUsingFallbackZk(), serviceKey) == null ? LoadBalanceStratage.LeastActive : getLoadBalanceStratage(serviceInfos.isUsingFallbackZk(), serviceKey); switch (balance) { case Random: callerInfo = random(callerInfo, usableList, null); break; case RoundRobin: callerInfo = roundRobin(callerInfo, usableList, null); break; case LeastActive: callerInfo = leastActive(callerInfo, usableList, null); break; case ConsistentHash: break; } return callerInfo; }
public static String getCallerInfo(String serviceName, String versionName, String methodName) { final boolean isLocal = SoaSystemEnvProperties.SOA_REMOTING_MODE.equals("local"); String callerInfo = null; List<ServiceInfo> usableList; ServiceInfos serviceInfos; if (isLocal) { usableList = new ArrayList<>(); serviceInfos = new ServiceInfos(false, usableList); } else { serviceInfos = RegistryAgentProxy.getCurrentInstance(RegistryAgentProxy.Type.Client).loadMatchedServices(serviceName, versionName, true); usableList = serviceInfos.getServiceInfoList(); } String serviceKey = serviceName + "." + versionName + "." + methodName + ".consumer"; LoadBalanceStratage balance = getLoadBalanceStratage(serviceInfos.isUsingFallbackZk(), serviceKey) == null ? LoadBalanceStratage.LeastActive : getLoadBalanceStratage(serviceInfos.isUsingFallbackZk(), serviceKey); switch (balance) { case Random: callerInfo = random(callerInfo, usableList, null); break; case RoundRobin: callerInfo = roundRobin(callerInfo, usableList, null); break; case LeastActive: callerInfo = leastActive(callerInfo, usableList, null); break; case ConsistentHash: break; } return callerInfo; }
} else { serviceInfos = RegistryAgentProxy.getCurrentInstance(RegistryAgentProxy.Type.Client).loadMatchedServices(soaHeader.getServiceName(), soaHeader.getVersionName(), true); usableList = serviceInfos.getServiceInfoList();
} else { serviceInfos = RegistryAgentProxy.getCurrentInstance(RegistryAgentProxy.Type.Client).loadMatchedServices(soaHeader.getServiceName(), soaHeader.getVersionName(), true); usableList = serviceInfos.getServiceInfoList();