柘月十七 2023-02-12 10:37 采纳率: 66.7%
浏览 87
已结题

gateway未能实现到nacos拉取配置完成向nacos注册

想让spring cloud gateway 实现读取bootstrap.yml里的配置去nacos拉取配置下来,整合远程配置实现向nacos注册。但在这个过程中,发现无法拉取配置文件并实现向nacos注册,其中nacos部署到云服务器上,本地电脑可以正常访问nacos管理页面,配置中心的配置仅有服务注册的配置。
这是本地项目bootstrap.yml文件内容:

img

这是nacos配置中心的配置:

img

这是服务列表命名空间管理:

img

这是控制台异常信息:

img


我的理解是,没有gateway没有成功拉取到配置到本地整合配置,进而没有注册中心的配置信息实现注册?所以,这个gateway需要怎么配置?

  • 写回答

6条回答 默认 最新

  • zoeil Java领域优质创作者 2023-02-12 11:38
    关注

    试试在bootstrap内加入nacos:discovery:server-addr

    cloud:
        nacos:
          discovery:
            server-addr: localhost:8848 #Nacos服务注册中心地址
          config:
            server-addr: localhost:8848 #Nacos作为配置中心地址
            file-extension: yaml #指定yaml格式的配置
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • a1767028198 2023-02-12 13:04
    关注

    程序都去这个ip拿配置了,这你敢说还没读到你的配置?

    img

    评论
  • CSDN-Ada助手 CSDN-AI 官方账号 2023-02-12 12:37
    关注
    评论
  • GISer Liu 2023-02-12 14:43
    关注

    为了使 Spring Cloud Gateway 能够从 Nacos 读取配置并向 Nacos 注册,您需要对项目进行以下几步配置:

    1.引入依赖:在您的 pom.xml 文件中加入 Nacos 和 Spring Cloud Config 相关的依赖。
    2.加入 Nacos 配置:在您的 bootstrap.yml 文件中加入 Nacos 的配置信息,包括 Nacos 服务地址、数据中心、命名空间等。
    3.配置 Nacos 数据源:在您的项目代码中配置 Nacos 数据源,以便让 Spring Cloud Gateway 能够从 Nacos 获取配置信息。
    4.实现 Nacos 注册:通过在代码中配置相关的 Bean,实现向 Nacos 注册的功能。

    如果您的 Nacos 配置没有生效,您可以检查一下以下几点:

    1.网络连接是否正常:检查您的本地电脑是否能够正常访问 Nacos 管理页面。
    2.Nacos 服务是否正常:检查 Nacos 服务是否已经正常启动并运行。
    3.配置是否正确:检查您的 bootstrap.yml 文件是否配置正确,包括 Nacos 的配置信息是否正确。
    4.代码实现是否正确:检查您的代码是否实现了 Nacos 数据源的配置和 Nacos

    评论
  • 柘月十七 2023-02-12 15:13
    关注

    非常感谢各位大佬得帮助与回答,同时我也参考了评论区的回复,还有通过查阅资料发现,这个nacos2.0以上需要增加两个端口9848、9849(默认8848端口就是这两个),用于客户端与服务端之间的gRPC,由于我的项目需求是nacos运行在云服务器上,所以端口处在未放开状态,无法正常gRPC。还有,我只配置了nacos:config:server-addr这个地址,但因为端口没有放开,这时的客户端无法通过gRPC连接并请求到服务端nacos配置中心,就无法拉取到远程配置到本地,所以nacos:config:server-addr失效了,使用默认的localhost进行注册,但本地没有开启nacos服务就抛异常了。
    补充:这两个9848、9849端口无需额外在配置文件配置,因为通过偏移量计算得出:8848 + 1000、8848 + 1001,偏移量分别是1000和1001。
    总结:没有打开gRPC端口就无法让客户端和服务端进行通信,就不能拉取配置并注册。

    评论
  • 2301_76488613 2023-02-12 11:35
    关注

    首先,您需要确保您的Spring Cloud Gateway配置正确,以便它可以正确连接到Nacos服务器。您可以在bootstrap.yml文件中添加以下配置:春天: 云: 纳科斯: 配置: server-addr: <Nacos服务器地址> 命名空间: <Nacos命名空间> 您还需要在Nacos服务器上创建一个配置文件,其中包含您的服务注册配置,以便Spring Cloud Gateway可以正确注册到Nacos服务器。最后,您需要在Spring Cloud Gateway应用程序中添加一个@EnableDiscoveryClient注解,以便它可以正确注册到Nacos服务器。

    评论
查看更多回答(5条)

报告相同问题?

问题事件

  • 系统已结题 2月20日
  • 已采纳回答 2月12日
  • 创建了问题 2月12日

悬赏问题

  • ¥15 shopify网站提速
  • ¥15 深海控制器DSE7320MKII和博世ECU间can通讯知识
  • ¥15 Ru的复折射率用于FDTD 200nm到1200nm
  • ¥15 使用Fiddler抓包,textview的乱码如何解决
  • ¥50 trio连接驱动器报错
  • ¥15 有谁懂nhanes的权重计算啊
  • ¥15 欧姆龙PLC 电机控制 限位
  • ¥30 如何处理shell命令接收到的视频流并实时播放出来
  • ¥15 虚心请教C#的代码优化问题
  • ¥15 有偿求做台风过境全过程模拟仿真