Spring Cloud Alibaba - Nacos 服务注册发现和配置管理

719 阅读2分钟

前言

Nacos 致力于帮助您发现、配置和管理微服务。
Nacos 提供了一组简单易用的特性集,帮助您实现动态服务发现、服务配置管理、服务及流量管理。
Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。 
Nacos 是构建以“服务”为中心的现代应用架构(例如微服务范式、云原生范式)的服务基础设施。
官方网址:https://nacos.io/zh-cn/index.html

准备

环境: JDK 1.8+、Maven  3.2.x+

下载安装

  1. 下载源码(推荐)
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U  
ls -al distribution/target/

// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
  1. 下载安装包(安装包下载的巨慢)
安装包下载地址:https://github.com/alibaba/nacos/releases
下载完成后解压,操作同上

启动

Linux/Unix/Mac 启动命令(standalone代表着单机模式运行,非集群模式):

sh startup.sh -m standalone

如果您使用的是ubuntu系统,或者运行脚本报错提示[[符号找不到,可尝试如下运行:

bash startup.sh -m standalone

Windows 启动命令:

cmd startup.cmd

或者双击startup.cmd运行文件。

这时候 nacos-server 就启动成功了

访问 http://localhost:8848/nacos/index.html

初始用户名密码都是 nacos

服务注册

引入依赖:

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

application.yml

spring:
  application:
    name: gateway
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
server:
  port: 9700

启动Java应用

这个时候就可以在nacos的控制台中发现注册进来的应用了

配置管理

引入依赖:

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

1.通过${spring.profile.active}去管理配置文件信息

这种管理方式相对常见,但是配置文件如果多的话,全部在 public 的命名空间下就不是很方便管理

新增一个 bootstrap.yml 配置文件

spring:
  application:
    name: gateway 
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        prefix: gateway ### 新建配置的时候的${prefix}
  profiles:
    active: dev ### 新建配置的时候的${spring.profiles.active}

启动Java应用,访问controller配置的url

这时候,我们在nacos中修改这个变量的值,并发布

这时候我并没重启应用,但是值却发生了变化(基于HTTP长轮询,客户端和配置中心建立HTTP长联接,当配置变更的的时候,配置中心把配置推送到客户端。)

2.通过nacos命名空间去管理配置文件信息

创建命名空间

选择新建的TEST命名空间,并新建配置

新增一个 bootstrap.yml 配置文件 这里可以不需要写${spring.profiles.active}

spring:
  application:
    name: gateway
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
        prefix: gateway
        namespace: a6fbdaf0-30f1-4afd-b565-d8b2abac7e22

启动Java应用,访问controller配置的url


END