在使用Nacos配置服务的实例类型的时候,对服务的实例类型进行修改。
之前的非临时实例,修改为临时实例后,报错:
com.alibaba.nacos.api.exception.NacosException: errCode: 400, errMsg: Current service DEFAULT_GROUP@@product-service is persistent service, can't register ephemeral instance.
at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:662) ~[nacos-client-2.2.1.jar:na]
at com.alibaba.nacos.common.remote.client.RpcClient.request(RpcClient.java:623) ~[nacos-client-2.2.1.jar:na]
报错原因:
Nacos会记录每个服务实例的IP和端口号,当发现IP和端口都没有发生变化时,Nacos不允许一个服务实例类型发生变化,比如从临时实例,变为非临时实例,或者从非临时实例,变成临时实例.
解决方案:
1.停掉nacos
2.删除nacos 目录下 /data/protocol/raft 信息,里面会保存应用实例的元数据信息.
# 进入到服务器
找到Nacos目录,我的nacos安装的时候在 /usr/local/src
在删除raft文件信息之前,选哟停掉nacos服务,使用ps -ef|grep nacos
# 然后删除raft文件
# 然后重启Nacos服务
bash startup.sh -m standalone
重启Nacos后,重启我们的服务,发现服务启动成功,并且成功注册到Nacos