微服务注册到nacos时,注册失败报错解决

微服务注册到nacos时,注册失败报错解决

微服务注册nacos时报错

NacosException: failed to req API:/nacos/v1/ns/instance/list after all servers([127.0.0.1:28100]) tried: ErrCode:503, ErrMsg:server is DOWNnow, detailed error message: Optional[No leader for raft group naming_persistent_service, please see logs alipay-jraft.log or naming-raft.log to see details.]

nacos报错alipay-jraft.log日志

在nacos的日志中发现,有个ip不一致:
WARN Node <naming_persistent_service/10.55.254.100:27100> can’t do preVote as it is not in conf <ConfigurationEntry [id=LogId [index=2, term=2], conf=10.7.6.43:7848, oldConf=]>

报错原因排查

Nacos 采用 raft 算法来计算 Leader,并会记录上次启动的集群地址,所以当我们自己的服务器 IP 改变时,会导致 raft 记录的集群地址失效,进而导致选择 Leader 出现问题。
方法:删除 Nacos 根目录下 data 文件夹下的 protocol 文件夹即可。实际项目部署时,有时候可能会在本地更改好nacos配置,本地启动没问题后部署到服务器上(带着data目录),所以ip 与服务器ip不一致,导致了以上问题。

好的,以下是一个简单的微服务启动脚本,用于将微服务注册Nacos: ```yaml apiVersion: apps/v1 kind: Deployment metadata: name: your-service labels: app: your-service spec: replicas: 1 selector: matchLabels: app: your-service template: metadata: labels: app: your-service spec: containers: - name: your-service image: your-service-image:latest ports: - containerPort: 8080 # 服务端口 env: - name: SPRING_APPLICATION_NAME # 应用名称 value: your-service - name: SPRING_PROFILES_ACTIVE # 激活的配置文件 value: prod - name: SERVER_PORT # 服务端口 value: "8080" - name: NACOS_SERVER_ADDR # Nacos服务地址 value: nacos-server:8848 volumeMounts: - name: config-volume mountPath: /usr/src/app/config # 配置文件目录 volumes: - name: config-volume configMap: name: your-service-config # 配置文件ConfigMap的名称 ``` 注意事项: 1. `your-service` 为服务名称,需要替换成实际的服务名称; 2. `your-service-image` 为服务镜像名称,需要替换成实际的镜像名称; 3. `8080` 为服务端口,需要替换成实际的服务端口; 4. `prod` 为激活的配置文件,需要替换成实际的配置文件; 5. `nacos-server:8848` 为Nacos服务地址,需要替换成实际的Nacos服务地址。 将上述内容保存为一个 YAML 文件,例如 `your-service-deployment.yaml`,然后使用 `kubectl apply -f your-service-deployment.yaml` 命令来部署微服务。部署后,该微服务将自动注册Nacos中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值