项目场景:

springboot+nacos 微服务架构,我们使用的是nacos

nacos配置,先添加依赖

<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-config-spring-boot-starter</artifactId>
    <version>${latest.version}</version>
</dependency>
<dependency>
    <groupId>com.alibaba.boot</groupId>
    <artifactId>nacos-discovery-spring-boot-starter</artifactId>
    <version>${latest.version}</version>
</dependency>

配置nacos

spring:
  config:
    activate:
      on-profile: dev
  cloud:
    nacos:
      config:
        server-addr: 192.168.0.188:8848
        namespace: summy-dev

问题描述

项目使用微服务,

启动项目报错

com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception


原因分析:

由官网可知我们使用nacos2.0之后需要开放两个8848偏移后的端口

解决方案:

在配置文件里增加端口设置

spring:
  config:
    activate:
      on-profile: dev
  cloud:
    nacos:
      discovery:
        server-addr: 192.168.0.188:8868
      config:
        server-addr: 192.168.0.188:8848
        namespace: summy-dev

但是在我们实际工作中其实可以只配置config的server-addr即可因为nacos本身自带动态配置服务,即动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。

所以我们可以将我们的配置文件放到nacos中进行管理

总结:

连接nacos检查bootstrap.yml文件的问题,当服务打包到k8s上管理时,配置访问地址也要查看是否存在问题,如果连接不同则会只剩一个端口配置也会出现com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exception

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐