SpringBoot 整合Nacos组件,环境搭建和入门案例详解

Nacos简介

Nacos 是构建以“服务”为中心的现代应用架构,如微服务范式、云原生范式等服务基础设施。聚焦于发现、配置和管理微服务。Nacos提供一组简单易用的特性集,帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理。敏捷构建、交付和管理微服务平台。

关键特性

  • 动态配置服务
  • 服务发现和服务健康监测
  • 动态 DNS 服务
  • 服务及其元数据管理

专业术语介绍

  • 命名空间
  • 用于进行租户粒度的配置隔离。不同的命名空间下,可以存在相同的 Group 或 Data ID 的配置。
  • 配置集
  • 一组相关或者不相关的配置项的集合称为配置集。在系统中,一个配置文件通常就是一个配置集,包含了系统各个方面的配置。
  • 配置集 ID
  • Nacos 中的某个配置集的ID。配置集ID是组织划分配置的维度之一。DataID通常用于组织划分系统的配置集。
  • 配置分组
  • Nacos 中的一组配置集,是组织配置的维度之一。通过一个有意义的字符串对配置集进行(Group)分组,从而区分 Data ID 相同的配置集。
  • 配置快照
  • Nacos 的客户端 SDK 会在本地生成配置的快照。当客户端无法连接到 Nacos Server 时,可以使用配置快照显示系统的整体容灾能力。
  • 服务注册
  • 存储服务实例和服务负载均衡策略的数据库。
  • 服务发现
  • 使用服务名对服务下的实例的地址和元数据进行探测,并以预先定义的接口提供给客户端进行查询。
  • 元数据
  • Nacos数据(如配置和服务)描述信息,如服务版本、权重、容灾策略、负载均衡策略等。

Nacos环境搭建

Nacos 依赖 Java 环境来运行。如果您是从代码开始构建并运行Nacos,还需要为此配置 Maven环境,请确保是在以下版本环境中安装使用:

64 bit OS,支持 Linux/Unix/Mac/Windows
64 bit JDK 1.8+;下载 & 配置。
Maven 3.2.x+;下载 & 配置。

这里直接下载打包好的文件,也可以下载源码自己打包。

https://github.com/alibaba/nacos/releases.

在这里插入图片描述

拉到下面找到下载文件:nacos-server-1.1.4.zip

初始化mysql数据库,数据库初始化文件:nacos-mysql.sql(在conf目录)
在这里插入图片描述
在这里插入图片描述

修改conf/application.properties文件,增加支持mysql数据源配置(目前只支持mysql),添加mysql数据源的url、用户名和密码。
在这里插入图片描述
保存启动。

启动环境

  • 启动文件地址:nacos\bin
  • 启动文件:startup.cmd
  • 关闭文件:shutdown.cmd

启动登录Nacos

账户密码默认:nacos/nacos ;首页效果如下:

在这里插入图片描述

在页面上新建一个配置,点击加号

在这里插入图片描述

在这里插入图片描述

这时候数据库会多一条记录

在这里插入图片描述

整合SpringBoot整合Nacos

核心依赖

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

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

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

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

YML配置

spring:
  # 项目名称,默认情况下Nacos中配置需要和这个保持一致
  application:
    name: DateBase #对应Data Id,不然报错获取不到配置文件值
  cloud:
    nacos:
      # 配置
      config:
        # 开发空间名称
        namespace: a23fb97a-9b56-4398-956e-51efe18421aa
        # Nacos地址
        server-addr: localhost:8848
        # Nacos用户名
        username: nacos
        # Nacos用户密码
        password: nacos
        # Nacos文件后缀
        file-extension: yml
        # Nacos分组-dev、test、prod获取不同的环境的配置必须配置分组
        group: DEFAULT_GROUP
      # 发布服务时需要加上这个,不然Nacos无法监听到
      discovery:
        # 开发空间名称
        namespace: a23fb97a-9b56-4398-956e-51efe18421aa
        # Nacos地址
        server-addr: localhost:8848
server:
  port: 8500

访问方式

@RefreshScope
@RestController
@RequestMapping("/demo")
public class NacosDemoController {
    @Value("${spring.datasource.username}")
    private String username;

    @Value("${spring.datasource.password}")
    private String password;

    @Value("${spring.datasource.url}")
    private String url;

    @GetMapping("/getValue")
    public String getValue(){
        return "[url:"+url+",username: " + username + ", password: " + password + "]";
    }
}

最终的结果:
在这里插入图片描述

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值