nacos 主要的基础语法,零基础学习

Nacos 是一个用于动态服务发现、配置管理和服务管理的平台。学习 Nacos 的基础语法和配置对于有效地管理和维护微服务架构非常重要。以下是一些关键的基础语法和概念,涵盖了服务注册与发现、配置管理等方面。

基础概念

  1. 服务注册与发现

    • 服务提供者将自身信息注册到 Nacos 中。
    • 服务消费者从 Nacos 获取所需的服务实例列表。
  2. 配置管理

    • 管理应用的各种配置文件,支持实时更新和热加载。
  3. 命名空间(Namespace)

    • 用于隔离不同的环境或项目组,如开发、测试、生产环境。
  4. 分组(Group)

    • 在同一个命名空间内,可以按功能或业务模块进行分组。
  5. 数据 ID(Data ID)

    • 配置文件的唯一标识符,通常包括文件名和扩展名,如 example.properties
  6. 集群模式

    • 支持单机模式和集群模式,确保高可用性。

主要配置文件

  1. application.properties
    • Nacos 服务器的主要配置文件,位于 conf/application.properties

关键配置项

application.properties 示例

Properties

# Spring Boot 应用配置
server.port=8848

# 数据库连接配置
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=nacos
db.password=nacos

# 集群配置
nacos.core.auth.enabled=false
nacos.cluster.enabled=true
nacos.core.auth.system.type=nacos
nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789

# 其他配置
management.endpoints.web.exposure.include=*

服务注册与发现

使用 Spring Cloud Alibaba 进行服务注册与发现
  1. 添加依赖

pom.xml 中添加 Nacos Discovery 依赖:

xml

XML 复制代码
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

2.配置 application.yml

src/main/resources/application.yml 中配置 Nacos 服务器地址:

yaml

XML 复制代码
spring:
  application:
    name: your-service-name
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848

3.启用服务注册

在主类上添加 @EnableDiscoveryClient 注解:

java

java 复制代码
package com.yourcompany.yourservice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class YourServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourServiceApplication.class, args);
    }
}

配置管理

使用 Spring Cloud Alibaba 进行动态配置管理
  1. 添加依赖

pom.xml 中添加 Nacos Config 依赖:

xml

XML 复制代码
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>

2.配置 bootstrap.yml

src/main/resources/bootstrap.yml 中配置 Nacos 配置中心地址:

yaml

XML 复制代码
spring:
  application:
    name: your-service-name
  cloud:
    nacos:
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml

3.使用配置

在需要使用配置的地方注入配置属性:

java

java 复制代码
package com.yourcompany.yourservice.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class AppConfig {

    @Value("${your.config.property:default_value}")
    private String configProperty;

    public String getConfigProperty() {
        return configProperty;
    }
}

控制台操作

  1. 登录控制台

    • 打开浏览器,访问 http://127.0.0.1:8848/nacos
    • 默认用户名和密码为 nacos
  2. 服务管理

    • 在"服务列表"中查看已注册的服务。
    • 可以手动添加、删除和编辑服务实例。
  3. 配置管理

    • 在"配置管理"中添加、编辑和发布配置文件。
    • 支持多种格式,如 properties、yaml 等。

示例代码

以下是一个简单的示例,展示如何在 Spring Boot 应用中使用 Nacos 进行服务注册与发现和配置管理。

1. 添加依赖

xml

XML 复制代码
<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
</dependencies>
2. 配置 bootstrap.yml

yaml

XML 复制代码
spring:
  application:
    name: example-service
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
      config:
        server-addr: 127.0.0.1:8848
        file-extension: yaml
3. 启用服务注册

java

java 复制代码
package com.example.exampleservice;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

@SpringBootApplication
@EnableDiscoveryClient
public class ExampleServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(ExampleServiceApplication.class, args);
    }
}
4. 使用配置

java

java 复制代码
package com.example.exampleservice.config;

import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class AppConfig {

    @Value("${app.message:Default Message}")
    private String message;

    public String getMessage() {
        return message;
    }
}
5. 控制器示例

java

java 复制代码
package com.example.exampleservice.controller;

import com.example.exampleservice.config.AppConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

    @Autowired
    private AppConfig appConfig;

    @GetMapping("/hello")
    public String sayHello() {
        return "Hello, " + appConfig.getMessage();
    }
}

总结

通过掌握上述 Nacos 的基本语法和配置选项,你可以有效地实现服务注册与发现、配置管理等功能,并确保微服务架构的高效性和可维护性。进一步的学习可以通过官方文档和其他资源来深入理解每个配置项的详细用法和最佳实践。

官方文档

这些资源提供了更详细的配置和高级功能介绍,帮助你更好地理解和使用 Nacos。

相关推荐
半旧5182 小时前
【cursor重构谷粒商城】03——谷粒商城技术架构选型存在哪些不足?
java·微服务·重构·项目·教育电商·谷粒商城
安的列斯凯奇4 小时前
Spring篇 解决因为Bean的循环依赖——理论篇
java·mysql·spring
发奋图强_lee4 小时前
用java配合redis 在springboot上实现令牌桶算法
java·spring boot·redis·令牌桶算法
codeBrute4 小时前
Spring实现IOC和AOP的底层原理
java·后端·spring
violin-wang4 小时前
Spring/SpringBoot的IOC、Bean、DI
java·spring boot·spring·bean·ioc·di
小Mie不吃饭5 小时前
彻底讲清楚 单体架构、集群架构、分布式架构及扩展架构
java·分布式·spring cloud·架构·springboot
小殷要努力刷题!6 小时前
JavaWeb项目——如何处理管理员登录和退出——笔记
java·javascript·笔记·学习·servlet·javaweb·寒假
工业互联网专业6 小时前
基于springboot+vue的食物营养分析与推荐网站的设计与实现
java·vue.js·spring boot·毕业设计·源码·课程设计
雷神乐乐6 小时前
Java操作Excel导入导出——POI、Hutool、EasyExcel
java·开发语言·spring boot·poi·easyexcel·hutool