python项目注册nacos后,健康实例数不稳定的原因及解决方案
使用tornado框架注册服务到nacos,并每隔5秒发送心跳。但发现注册后页面上的健康实例数不稳定。
原因:尽管使用了v2版本的nacos api向nacos注册服务并发送心跳,但nacos版本为2.0,而v1版本才是正确的api。
解决方案:将注册、发送心跳和注销操作的接口都改为v1版本。
修改后的代码如下:
async def register_instance(service_name): logger.info('start register instance to nacos!') await nacos_client.register(service_name, 8094, v=1) # 使用V1 API async def send_heartbeat(service_name): while True: await nacos_client.send_beat(service_name, 8094, v=1) # 使用V1 API logger.info('Send heartbeat successful') await tornado.gen.sleep(5) async def deregister_instance(service_name): logger.info('start deregister instance from nacos!') await nacos_client.deregister(service_name, 8094, v=1) # 使用V1 API