Nacos配置中心和服务的注册发现

本文详述了如何在项目中使用Nacos作为配置中心和注册中心。首先介绍了配置中心的搭建,包括在Nacos后台创建命名空间、配置文件,以及在SpringBoot项目中配置Nacos地址、命名空间等信息。接着,展示了如何使用Feign和Ribbon完成服务调用,并探讨了Nacos的权重负载均衡策略。最后总结了Nacos在微服务架构中的实用价值。
摘要由CSDN通过智能技术生成

在上一篇中,我们已经把Nacos的集群搭建好了,那么既然已经搭建好了,就要在咱们的项目中去使用。Nacos既可以做配置中心,也可以做注册中心。我们先来看看在项目中如何使用Nacos做配置中心。

Nacos配置中心

在项目中使用Nacos做配置中心还是比较简单的,我们先创建SpringBoot项目,然后引入nacos-config的jar包,具体如下:

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

如果你不想使用SpringBoot默认的nacos-config版本,也可以指定版本号。

首先,我们进入到nacos的管理后台,第一步要创建命名空间,如图:

在这里插入图片描述

我们创建了user的服务配置,以后user相关的微服务都在这个命名空间中拉取配置。我们点击保存,命名空间的id会自动生成,这个id是十分重要的,我们要在项目中配置这个id。命名空间创建好以后,我们再创建配置文件,

在这里插入图片描述

在配置列表中,我们先选中刚才新建的命名空间:user服务配置。然后再点击新建,我的截图中已经把user-provider的配置文件创建好了。我们可以看一下如何新建,如图:

在这里插入图片描述

其中Data ID我们叫做user-provider,group我们用来区分本地环境、测试环境、生产环境。配置格式我们选择yaml,内容我们先配置一个username看看能不能生效。

然后在resources目录下创建bootstrap.yml,这个bootstrap.yml和application.yml是不一样的,它优先加载于application.yml,大家一定要注意他们的区别。我们要在bootstrap.yml文件中,要配置nacos的地址、命名空间、文件名等信息,具体如下:

spring:
  cloud:
    nacos:
      server-addr: nacos-host:80
      config:
        file-extension: yml
        name: user-provider
        group: ${
   spring.profiles.active}
        namespace: e5aebd28-1c15-4991-a36e-0865bb5af930
  application:
    name: user-provider
  • spring.application.name,这个不用说了,就是你应用的名称,我们叫做user-provider,用户服务的提供者。
  • 再看上面的部分server-addr,这个是nacos的地址,我们配置为nacos-host:80。其中nacos-host需要配置host,指向nacos的ip,而端口80也是需要指定的,如果不指定端口,会默认8848端口。
  • 再看config的部分,file-extension,文件的扩展名,这里我们使用yml,相应的,在nacos配置中心中,配置格式选择yaml。
  • config.name对应着nacos管理后台的Data ID。
  • group,在这里是分组,我们用作区分不同环境的标识,通过项目启动时传入的参数${spring.profiles.active}获得。
  • namespace,命名空间,这里要填写命名空间的id,这个id在nacos后台中获取。这里我们填写的是user配置服务的命名空间id。

到这里,在项目中使用nacos做配置中心就搭建好了。我们在项目当中写个属性类,测试一下,看看能不能取到值。

@RefreshScope
@Setter@Getter
@Configuration
public class DatabaseConfig {
   

    @Value("${username}")
    private String username;
    @Value("${server.port}")
    private String port;
}
  • 我们写了个DatabaseConfig类,先注意一下类上面的注解,@RefreshScope这个注解可以使我们在nacos管理后台修改配置以后,项目不用重启,就可以更改变量的值。
  • @Setter@Getter这个是Lombok的注解,可以省去setget方法。
  • @Configuration标识这个类是一个配置类,项目启动时会实例化。
  • 在类里边,我们定义了两个变量,username和port,两个变量上面的注解@Value,可以取到对应的,属性的值。 u s e r n a m e 这 个 我 们 在 n a c o s 管 理 后 台 已 经 设 置 了 , {username}这个我们在nacos管理后台已经设置了, usern
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值