Nacos 注册中心&配置中心——简单入门

介绍

  1. Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。Nacos 致力于帮助您发现、配置和管理微服务。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据及流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 Nacos 是构建以“服务”为中心的现代应用架构 (例如微服务范式、云原生范式) 的服务基础设施。
  2. 相对于 Spring Cloud Eureka 来说,Nacos 更强大。Nacos = Spring Cloud Eureka + Spring Cloud Config
  3. Nacos 可以与 Spring, Spring Boot, Spring Cloud 集成,并能代替 Spring Cloud Eureka, Spring Cloud Config
  4. 通过 Nacos Server 和 spring-cloud-starter-alibaba-nacos-discovery 实现服务的注册与发现。
  5. 如果微服务架构中没有使用统一配置中心时,所存在的问题:
  • 配置文件分散在各个项目里,不方便维护
  • 配置内容安全与权限
  • 更新配置后,项目需要重启
    nacos配置中心:系统配置的集中管理(编辑、存储、分发)、动态更新不重启、回滚配置(变更管理、历史版本管理、变更审计)等所有与配置相关的活动。

Nacos是以服务为主要服务对象的中间件,Nacos支持所有主流的服务发现、配置和管理。
Nacos主要提供以下四大功能:

  1. 服务发现和服务健康监测
  2. 动态配置服务
  3. 动态DNS服务
  4. 服务及其元数据管理

官方文档

请先通过官方文档快速安装nacos

Nacos 快速开始

快速开始

1.启动 nacos

bin文件夹中启动

startup.cmd -m standalone windows
./startup.sh -m standalone linux
sh startup.sh -m standalone linux

2.作注册中心

服务注册

引入依赖

<!--
  SpringCloud Alibaba环境指定:
  SpringBoot环境:2.3.12.RELEASE
  SpringCloud环境:Hoxton.SR12
  SpringCloud Alibaba环境:2.2.7.RELEASE
-->

<properties>
  <java.version>1.8</java.version>
  <spring-cloud.version>Hoxton.SR12</spring-cloud.version>
  <spring-cloud-alibaba.version>2.2.7.RELEASE</spring-cloud-alibaba.version>
</properties>

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

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.springframework.cloud</groupId>
      <artifactId>spring-cloud-dependencies</artifactId>
      <version>${spring-cloud.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>

    <dependency>
      <groupId>com.alibaba.cloud</groupId>
      <artifactId>spring-cloud-alibaba-dependencies</artifactId>
      <version>${spring-cloud-alibaba.version}</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
  </dependencies>
</dependencyManagement>

配置文件 application.yml

server:
  port: 8081
spring:
  application:
    name: nacos-provider # 服务名
  cloud:
    nacos:
      discovery:
		# nacos服务地址
        server-addr: localhost:8848/

启动类加上注解 @EnableDiscoveryClient

正常的话就可以在 nacos上看到此服务了

3.作配置中心

加载 nacos上配置文件

引入依赖

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

配置文件 bootstrap.yml

  • 系统级别的配置文件,优先级要高于application.yml,先加载
  • 通常系统级别的配置文件,加载一些需要优先加载的配置信息,比如:配置中心的内容
spring:
  cloud:
    nacos:
      config:
        # nacos服务地址(记得先在 nacos上创建配置文件)
        server-addr: localhost:8848
        # 账号、密码
#        username: nacos
#        password: nacos
        # 命名空间ID,默认public
#        namespace: public
        # 加载配置文件信息
        prefix: application-test
        # 配置文件默认扩展名,默认Properties
        file-extension: yaml
        # 实时更新配置文件,默认true
        refresh-enabled: true
        # 配置文件组,默认DEFAULT_GROUP,可以针对业务进行分组,如订单模块,库存模块等
        group: DEFAULT_GROUP
        # 加载多个配置文件,类似Maven的拆分和聚合操作
  profiles:
    active: dev #dev、test、prod 三种配置可以在这里进行一键切换,默认激活 dev(开发)环境配置

在 nacos上创建文件 application-test.yml

server:
  port: 8088
spring:
  application:
    name: nacos-gateway
  cloud:
    nacos:
      discovery:
        # 加载Nacos注册中心地址
        server-addr: localhost:8848
    gateway:
      routes:
        - id: toConsumer
          predicates:
            - Path=/consumer/**
          uri: lb://006-nacos-consumer
        - id: toBaidu
          predicates:
            - Path=/
          uri: https://www.baidu.com
        - id: toBaiduNews
          predicates:
            - Path=/, /guonei, /guoji
          uri: https://news.baidu.com/

@RefreshScope

控制器 controller加上注解,则修改 Nacos配置中心的配置信息后,客户端也能实时获取到配置信息

配置文件的拆分和聚合

可以把以上 application-test.yml 拆分成几个 yaml文件,再通过 bootstrap 配置聚合
请先分别在 nacos创建以下5个配置文件,并把上述 application-test.yml 拆分到这几个文件中

spring:
  cloud:
    nacos:
      config:
        # 加载Nacos配置中心地址
        server-addr: localhost:8848
        # 加载配置信息的命名空间
        namespace: 8600ea68-008b-4d9e-8d50-d78b4b4803a0
        # 把上面的yaml文件在nacos中拆分成多个配置文件
      	# 同时加载多个配置文件,系统会自动聚合在一起
        extension-configs:
          - dataId: application-base.yaml
            group: base
            refresh: true
          - dataId: application-server.yaml
            group: SERVER
            refresh: true
          - dataId: application-spring.yaml
            group: spring
            refresh: true
          - dataId: application-nacos.yaml
            group: nacos
            refresh: true
          - dataId: application-gateway.yaml
            group: gateway
            refresh: true

扩展:持久化操作

  • 找到nacos/conf目录中的application.properties
spring.datasource.platform=mysql #持久化平台
db.num=1 # 存储节点数量
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos #数据库用户名
db.password.0=nacos #数据库密码
  • mysql创建数据库和表结构
    • 要求Mysql的版本必须为 5.7+
    • nacos/conf目录下nacos-mysql.sql
    • 将这个文件创建到数据库中,生成表结构,重启启动Nacos即可
  • 26
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值