nacos-group / nacos-sdk-python

nacos python sdk
Apache License 2.0
358 stars 136 forks source link

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

Open jiangzp007 opened 3 years ago

jiangzp007 commented 3 years ago

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 commented 3 years ago

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

plas007 commented 3 years ago

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

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