SpringBoot 使用 Nacos 作为注册中心


最近开发了一个 SpringBoot 项目,需要将其发布为一个微服务,注册到 Nacos,参考 Nacos 官网文档的说明没有搞定,各种问题,最后还是使用了 SpringCloud 的依赖才成功的,下面介绍下 SpringBoot 注册到 Nacos 的过程。

如果想要不使用 SpringCloud 依赖直接将 SpringBoot 项目注册到 Nacos,可以参考这篇文章:

SpringBoot使用Nacos进行服务注册发现与配置管理

1. 环境介绍

当前使用的 Nacos 版本为 2.0.2,三个实例,集群部署。

本来使用的 SpringBoot 版本为 2.6.2,为了使用 Nacos,降到了 2.3.4.RELEASE。因为 SpringBoot 2.4.0 版本之后删掉了ConfigurationBeanFactoryMetadata,而 Nacos 需要用到这个,所以会报如下错误:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'nacosConfigurationPropertiesBinder': Bean instantiation via constructor failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.alibaba.boot.nacos.config.binder.NacosBootConfigurationPropertiesBinder]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/springframework/boot/context/properties/ConfigurationBeanFactoryMetadata

我的 SpringBoot 依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <version>2.3.4.RELEASE</version>
</dependency>

或者使用2.4.0版本之前的最新版本2.3.12.RELEASE
在这里插入图片描述

2. 配置过程

一个普通的 SpringBoot 项目,首先需要在 pom.xml 中添加依赖:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>2.2.3.RELEASE</version>
</dependency>

项目启动类上需要添加注解:

import org.springframework.cloud.client.discovery.EnableDiscoveryClient
...
@EnableDiscoveryClient

接下来需要修改配置文件,添加下面三项配置:

#服务名
spring.application.name=output-server-test

#Nacos服务地址
spring.cloud.nacos.discovery.server-addr=192.168.0.10:30000

#Nacos命名空间,注意要和网关服务gateway在同一个命名空间下
spring.cloud.nacos.discovery.namespace=gtcom-console

项目启动成功后,就可以在 Nacos 的服务管理中的服务列表中的对应命名空间下看到注册成功的服务了。

3. 网关配置

想要让其他服务通过网关能成功调用该服务,还需要在网关服务的配置文件中添加对应的路由,比如我这个项目的所有接口地址前缀是/output

server.servlet.context-path=/output

这时需要在网关服务的配置文件中添加:

spring:
  cloud:
    gateway:
      routes:
      #输出服务
      - id: output-server-test
        uri: lb://output-server-test
        predicates: 
          - Path=/output/**
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SpringBoot可以通过集成Nacos来实现配置管理和服务发现的功能。 首先,通过集成Nacos的配置管理功能,SpringBoot可以从Nacos中获取配置项的值。Nacos提供了动态配置的能力,可以在Nacos中添加多个配置集,每个配置集下可以有多个配置项。当Nacos中的配置项发生修改时,SpringBoot可以及时获取到最新的配置值。这样,在开发和部署过程中不需要重新打包部署,可以动态更新配置,提高了系统的灵活性和可维护性。你可以在中找到更多关于Spring BootNacos的新功能使用手册。 其次,通过集成Nacos的服务发现功能,SpringBoot可以将自己注册到Nacos服务器,并从Nacos中获取其他服务的信息。Nacos作为服务发现的中心,可以管理和监控所有注册在其上的服务实例。SpringBoot可以使用Nacos提供的服务发现功能,实现服务之间的调用和负载均衡。你可以在中找到关于Spring Boot集成Nacos服务发现的具体配置和使用方式。 要完成SpringBoot集成Nacos,你需要在Spring Boot项目的pom.xml文件中添加Nacos相关的依赖。例如,你可以在中找到Nacos的配置依赖和中找到Nacos的服务发现依赖。 总结起来,通过集成NacosSpringBoot可以实现配置管理和服务发现的功能,提高系统的灵活性和可维护性。你可以参考上述提供的链接和依赖来了解更多关于SpringBoot集成Nacos的详细信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值