nacos-sdk-python icon indicating copy to clipboard operation
nacos-sdk-python copied to clipboard

python注册的服务,在nacos的服务列表里能看到,但是在java里获取不到实例

Open jiangzp007 opened this issue 4 years ago • 2 comments

python的注册代码 SERVER_ADDRESSES = "127.0.0.1:8848" NAMESPACE = "public" def func(): # no auth mode client = nacos.NacosClient(SERVER_ADDRESSES, namespace=NAMESPACE) client.send_heartbeat("python", "127.0.0.1", "5000") print('send heartbeat')

java的获取代码 @RestController public class TestController {

@Autowired
DiscoveryClient discoveryClient;
@Autowired
RestTemplate restTemplate;


@GetMapping("/hello")
public String sayHello() throws NacosException {

    List<ServiceInstance> list = discoveryClient.getInstances("python");
    ServiceInstance instance = list.get(0);
}

} 直接就报空指针了 java.lang.NullPointerException: null at java.util.HashMap.putMapEntries(HashMap.java:500) ~[na:1.8.0_111] at java.util.HashMap.putAll(HashMap.java:784) ~[na:1.8.0_111] at com.alibaba.cloud.nacos.discovery.NacosServiceDiscovery.hostToServiceInstance(NacosServiceDiscovery.java:95) ~[spring-cloud-alibaba-nacos-discovery-2.2.0.RELEASE.jar:2.2.0.RELEASE] 这是什么原因啊?

jiangzp007 avatar Mar 11 '21 02:03 jiangzp007

找到解决方法了,python注册的时候需要把参数metadata也加上就可以获取到了。

jiangzp007 avatar Mar 11 '21 03:03 jiangzp007

找到解决方法了,python注册的时候需要把参数metadata也加上就可以获取到了。

我看到文档中说metadata是 Extra info in JSON string format or dict format, 所以这里的值应该是什么?不太理解

plas007 avatar May 06 '21 09:05 plas007