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

java sdk nacos-discovery-spring-boot-starter 使用过程中的疑问 #212

Open
dzpxlz opened this issue Oct 13, 2021 · 0 comments
Open

Comments

@dzpxlz
Copy link

dzpxlz commented Oct 13, 2021

你好:
在使用nacos sdk java版中有2个疑问点,
我使用的版本如下:0.2.10

我的配置中
#设置成临时实例
nacos.discovery.register.ephemeral=true
注册过程中有2个疑问
疑问一:
这个地方:
NamingClientProxyDelegate类中注册实例如下:
@OverRide
public void registerService(String serviceName, String groupName, Instance instance) throws NacosException {
getExecuteClientProxy(instance).registerService(serviceName, groupName, instance);
}

private NamingClientProxy getExecuteClientProxy(Instance instance) {
return instance.isEphemeral() ? grpcClientProxy : httpClientProxy;
}

和NamingHttpClientProxy.registerService.java中的代码会不会存在重复问题
@OverRide
public void registerService(String serviceName, String groupName, Instance instance) throws NacosException {

    NAMING_LOGGER.info("[REGISTER-SERVICE] {} registering service {} with instance: {}", namespaceId, serviceName,
            instance);
    String groupedServiceName = NamingUtils.getGroupedName(serviceName, groupName);
    if (instance.isEphemeral()) {
        BeatInfo beatInfo = beatReactor.buildBeatInfo(groupedServiceName, instance);
        beatReactor.addBeatInfo(groupedServiceName, beatInfo);
    }
    final Map<String, String> params = new HashMap<String, String>(16);
    params.put(CommonParams.NAMESPACE_ID, namespaceId);
    params.put(CommonParams.SERVICE_NAME, groupedServiceName);
    params.put(CommonParams.GROUP_NAME, groupName);
    params.put(CommonParams.CLUSTER_NAME, instance.getClusterName());
    params.put(IP_PARAM, instance.getIp());
    params.put(PORT_PARAM, String.valueOf(instance.getPort()));
    params.put(WEIGHT_PARAM, String.valueOf(instance.getWeight()));
    params.put("enable", String.valueOf(instance.isEnabled()));
    params.put(HEALTHY_PARAM, String.valueOf(instance.isHealthy()));
    params.put(EPHEMERAL_PARAM, String.valueOf(instance.isEphemeral()));
    params.put(META_PARAM, JacksonUtils.toJson(instance.getMetadata()));
    
    reqApi(UtilAndComs.nacosUrlInstance, params, HttpMethod.POST);
    
}

如果说:instance.isEphemeral() 为true的话 根本就不会走NamingHttpClientProxy代理了。

疑问二:
在NamingGrpcClientProxy.registerService方法中我看没有设置instanceId。 这样就会导致调用/nacos/v1/ns/instance获取到的instanceId会是空的。

是设计如此 还是有点小问题。 麻烦大佬们解答下。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant