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。

相关推荐
Broken Arrows19 分钟前
Linux学习——管理网络安全(二十一)
linux·学习·web安全
今天也要学习吖1 小时前
谷歌nano banana官方Prompt模板发布,解锁六大图像生成风格
人工智能·学习·ai·prompt·nano banana·谷歌ai
雁于飞1 小时前
vscode中使用git、githup的基操
笔记·git·vscode·学习·elasticsearch·gitee·github
程序员的世界你不懂1 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
星空寻流年1 小时前
设计模式第一章(建造者模式)
java·设计模式·建造者模式
rannn_1111 小时前
【Javaweb学习|实训总结|Week1】html基础,CSS(选择器、常用样式、盒子模型、弹性盒布局、CSS定位、动画),js(基本类型、运算符典例)
css·笔记·学习·html
gb42152872 小时前
java中将租户ID包装为JSQLParser的StringValue表达式对象,JSQLParser指的是?
java·开发语言·python
曾经的三心草2 小时前
Python2-工具安装使用-anaconda-jupyter-PyCharm-Matplotlib
android·java·服务器
Metaphor6922 小时前
Java 高效处理 Word 文档:查找并替换文本的全面指南
java·经验分享·word
ChinaRainbowSea2 小时前
7. LangChain4j + 记忆缓存详细说明
java·数据库·redis·后端·缓存·langchain·ai编程