【深入了解Spring Cloud Alibaba Nacos:服务注册和配置中心】—— 每天一点小知识

简介: 【深入了解Spring Cloud Alibaba Nacos:服务注册和配置中心】—— 每天一点小知识

🐳深入了解Spring Cloud Alibaba Nacos:服务注册和配置中心

1. Nacos简介

Nacos是一个开源的分布式服务注册和配置中心,它提供了一种简单且强大的方式来实现微服务架构中的服务注册和配置管理。Nacos支持基于云原生的架构理念,具有高可用性、动态扩展、易于使用和强大的功能。

Nacos的主要特性包括:

  • 服务注册和发现:Nacos可以作为服务注册中心,帮助微服务应用进行服务注册与发现,实现微服务的动态扩展和负载均衡。
  • 服务配置管理:Nacos可以作为配置中心,集中管理微服务应用的配置信息,实现配置的动态更新和一致性。
  • 服务健康监测:Nacos提供了对注册的服务进行健康状态的监测和上报的功能,可以实现对微服务的故障检测和自动移除不可用的服务实例。
  • 动态路由:Nacos支持动态路由的功能,可以实现微服务的动态路由配置和灰度发布。
  • 事件发布与订阅:Nacos提供了事件发布与订阅的机制,可以用于微服务之间的通信和解耦。

2. 安装并运行Nacos

下面我们将一步一步地介绍如何安装并运行Nacos。

2.1 下载Nacos

首先,我们需要从Nacos的官方网站下载最新的稳定版本。你可以访问以下链接下载:

Nacos下载页面

选择合适的版本,并下载对应的压缩包。

2.2 解压缩并启动Nacos

下载完成后,将压缩包解压缩到你选择的目录中。进入解压后的目录,你将看到类似以下的文件结构:

nacos/
  ├── bin/
  ├── conf/
  ├── lib/
  └── ...

在终端中进入Nacos的bin目录,并执行以下命令启动Nacos服务器:

./startup.sh -m standalone

Nacos将启动并监听默认的端口号,你可以通过访问http://localhost:8848来访问Nacos的控制台。

3. Nacos作为服务注册中心演示

现在我们将演示如何使用Nacos作为服务注册中心。

3.1 创建Spring Boot项目

首先,我们需要创建一个简单的Spring Boot项目。你可以使用你喜欢的IDE或者使用以下命令创建一个空的Spring Boot项目:

mkdir service-provider
cd service-provider

然后,在项目的根目录下创建一个pom.xml文件,并添加以下依赖:

<dependencies>
    <!-- Spring Boot Web Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- Spring Cloud Alibaba Nacos Discovery -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
</dependencies>

3.2 编写服务提供者

在项目中创建一个HelloController类,并添加以下代码:

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/hello")
public class HelloController {
    @GetMapping
    public String sayHello() {
        return "Hello, Nacos!";
    }
}

3.3 配置Nacos注册中心

application.properties文件中,添加以下配置:

# Nacos配置
spring.cloud.nacos.discovery.server-addr=localhost:8848
spring.application.name=service-provider

这些配置告诉Spring Boot应用将使用Nacos作为服务注册中心,并将应用注册到本地的Nacos服务器上。

3.4 启动服务提供者

现在,你可以启动Spring Boot应用程序。在终端中进入项目根目录,并执行以下命令:

./mvnw spring-boot:run

应用程序将启动,并注册到Nacos服务器上。

3.5 检查服务注册

现在,你可以在Nacos控制台中检查服务是否成功注册。在浏览器中访问http://localhost:8848/nacos,进入Nacos的控制台。

点击左侧的"服务管理",你应该能看到名为service-provider的服务已注册成功。

4. Nacos作为服务配置中心演示

现在,我们将演示如何使用Nacos作为服务配置中心。

4.1 创建Spring Boot项目

同样地,我们需要创建一个简单的Spring Boot项目。你可以使用你喜欢的IDE或者使用以下命令创建一个空的Spring Boot项目:

mkdir config-client
cd config-client

然后,创建一个pom.xml文件,并添加以下依赖:

<dependencies>
    <!-- Spring Boot Web Starter -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <!-- Spring Cloud Alibaba Nacos Config -->
    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
</dependencies>

4.2 编写配置客户端

在项目中创建一个ConfigController类,并添加以下代码:

import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/config")
public class ConfigController {
    @Value("${message:Default Message}")
    private String message;
    @GetMapping
    public String getMessage() {
        return message;
    }
}

这个控制器将返回配置中心中配置的消息。

4.3 配置Nacos作为配置中心

bootstrap.properties文件中,添加以下配置:

# Nacos配置
spring.cloud.nacos.config.server-addr=localhost:8848
spring.application.name=config-client

这些配置告诉Spring Boot应用将使用Nacos作为配置中心,并从Nacos服务器上获取配置。

4.4 创建配置

在Nacos控制台中,点击左侧的"配置列表",然后点击右上角的"新增配置"

填写以下信息:

  • Data ID: config-client.properties
  • Group: DEFAULT_GROUP
  • 配置内容: message=Hello, Nacos Config!

点击"发布"按钮保存配置。

4.5 启动配置客户端

现在,你可以启动Spring Boot应用程序。在终端中进入项目根目录,并执行以下命令:

./mvnw spring-boot:run

应用程序将启动,并从Nacos配置中心获取配置。

4.6 检查配置获取

在浏览器中访问http://localhost:8080/config,你应该能够看到返回的消息是"Hello, Nacos Config!"。

5. Nacos集群和持久化配置

Nacos支持集群部署和持久化配置,这可以提高Nacos的可用性和数据安全性。

要配置Nacos集群,你需要在不同的机器上部署多个Nacos实例,并使用相同的数据库进行数据共享。

要配置Nacos的持久化,你需要将Nacos的数据存储在外部数据库中,而不是默认的嵌入式数据库。你可以使用MySQL或者其他支持的数据库作为Nacos的存储后端。

详细的集群和持久化配置步骤请见 ——> 深入了解Nacos集群和持久化配置

总结

 💧Nacos作为一个功能丰富且易于使用的服务注册和配置中心,为构建微服务架构提供了强大的支持。通过深入了解和使用Nacos,我们可以更好地管理和维护微服务应用,实现高可用性和动态扩展。

 💧希望本篇博客对你有所帮助,让你对Spring Cloud Alibaba Nacos有更深入的理解。

相关文章
|
18天前
|
人工智能 Java Nacos
基于 Spring AI Alibaba + Nacos 的分布式 Multi-Agent 构建指南
本文将针对 Spring AI Alibaba + Nacos 的分布式多智能体构建方案展开介绍,同时结合 Demo 说明快速开发方法与实际效果。
935 47
|
2月前
|
XML Java Nacos
Spring Boot 整合Nacos 版本兼容适配 史上最详细文档
本文介绍SpringBoot整合Nacos的完整流程,涵盖Nacos下载安装、配置中心与服务发现集成、版本兼容性问题及实战配置。重点解决SpringBoot 3.3.0与Nacos版本适配难题,推荐使用Spring Cloud Alibaba方案,并提供项目开源地址供参考学习。
|
18天前
|
XML 前端开发 Java
一文搞懂 Spring Boot 自动配置原理
Spring Boot 自动配置原理揭秘:通过 `@EnableAutoConfiguration` 加载 `META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports` 中的配置类,结合 `@Conditional` 按条件注入 Bean,实现“开箱即用”。核心在于约定大于配置,简化开发。
326 0
|
2月前
|
负载均衡 监控 Java
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
本文详细介绍了 Spring Cloud Gateway 的核心功能与实践配置。首先讲解了网关模块的创建流程,包括依赖引入(gateway、nacos 服务发现、负载均衡)、端口与服务发现配置,以及路由规则的设置(需注意路径前缀重复与优先级 order)。接着深入解析路由断言,涵盖 After、Before、Path 等 12 种内置断言的参数、作用及配置示例,并说明了自定义断言的实现方法。随后重点阐述过滤器机制,区分路由过滤器(如 AddRequestHeader、RewritePath、RequestRateLimiter 等)与全局过滤器的作用范围与配置方式,提
Spring Cloud Gateway 全解析:路由配置、断言规则与过滤器实战指南
|
2月前
|
Java 关系型数据库 MySQL
Spring Boot自动配置:魔法背后的秘密
Spring Boot 自动配置揭秘:只需简单配置即可启动项目,背后依赖“约定大于配置”与条件化装配。核心在于 `@EnableAutoConfiguration` 注解与 `@Conditional` 系列条件判断,通过 `spring.factories` 或 `AutoConfiguration.imports` 加载配置类,实现按需自动装配 Bean。
|
2月前
|
人工智能 Java 开发者
【Spring】原理解析:Spring Boot 自动配置
Spring Boot通过“约定优于配置”的设计理念,自动检测项目依赖并根据这些依赖自动装配相应的Bean,从而解放开发者从繁琐的配置工作中解脱出来,专注于业务逻辑实现。
|
4月前
|
Java Spring
Spring Boot配置的优先级?
在Spring Boot项目中,配置可通过配置文件和外部配置实现。支持的配置文件包括application.properties、application.yml和application.yaml,优先级依次降低。外部配置常用方式有Java系统属性(如-Dserver.port=9001)和命令行参数(如--server.port=10010),其中命令行参数优先级高于系统属性。整体优先级顺序为:命令行参数 &gt; Java系统属性 &gt; application.properties &gt; application.yml &gt; application.yaml。
818 0
|
22天前
|
前端开发 Java 应用服务中间件
《深入理解Spring》 Spring Boot——约定优于配置的革命者
Spring Boot基于“约定优于配置”理念,通过自动配置、起步依赖、嵌入式容器和Actuator四大特性,简化Spring应用的开发与部署,提升效率,降低门槛,成为现代Java开发的事实标准。
|
2月前
|
缓存 Java 应用服务中间件
Spring Boot配置优化:Tomcat+数据库+缓存+日志,全场景教程
本文详解Spring Boot十大核心配置优化技巧,涵盖Tomcat连接池、数据库连接池、Jackson时区、日志管理、缓存策略、异步线程池等关键配置,结合代码示例与通俗解释,助你轻松掌握高并发场景下的性能调优方法,适用于实际项目落地。
435 4
|
2月前
|
传感器 Java 数据库
探索Spring Boot的@Conditional注解的上下文配置
Spring Boot 的 `@Conditional` 注解可根据不同条件动态控制 Bean 的加载,提升应用的灵活性与可配置性。本文深入解析其用法与优势,并结合实例展示如何通过自定义条件类实现环境适配的智能配置。
143 0
探索Spring Boot的@Conditional注解的上下文配置