【深入了解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有更深入的理解。

相关文章
|
3月前
|
人工智能 Java API
Nacos 3.1.0 正式发布,支持 A2A 注册中心与 MCP 注册协议增强
3.1.0 发布核心全新功能-Agent 注册中心,助力构建基于 A2A 协议的多 Agent 协作的AI应用,同时 MCP 注册中心适配最新 MCP 官方注册中心协议及升级优化多项核心功能。
747 32
|
JSON Java Nacos
SpringCloud 应用 Nacos 配置中心注解
在 Spring Cloud 应用中可以非常低成本地集成 Nacos 实现配置动态刷新,在应用程序代码中通过 Spring 官方的注解 @Value 和 @ConfigurationProperties,引用 Spring enviroment 上下文中的属性值,这种用法的最大优点是无代码层面侵入性,但也存在诸多限制,为了解决问题,提升应用接入 Nacos 配置中心的易用性,Spring Cloud Alibaba 发布一套全新的 Nacos 配置中心的注解。
1284 143
|
11月前
|
Cloud Native Java Nacos
springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析
通过本文,我们详细介绍了如何在 Spring Cloud 和 Spring Boot 中集成 Nacos 进行服务注册和配置管理,并对 Nacos 的源码进行了初步分析。Nacos 作为一个强大的服务注册和配置管理平台,为微服务架构提供
4260 14
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评
Nacos作为流行的微服务注册与配置中心,其稳定性与易用性广受好评。然而,“客户端不发送心跳检测”是使用中常见的问题之一。本文详细探讨了该问题的原因及解决方法,包括检查客户端配置、网络连接、日志、版本兼容性、心跳检测策略、服务实例注册状态、重启应用及环境变量等步骤,旨在帮助开发者快速定位并解决问题,确保服务正常运行。
226 5
|
Dubbo Cloud Native 应用服务中间件
阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。
在云原生时代,微服务架构成为主流。阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。示例代码展示了如何在项目中实现两者的整合,通过 Nacos 动态调整服务状态和配置,适应多变的业务需求。
431 2
|
网络安全 Nacos 开发者
Nacos作为流行的微服务注册与配置中心,“节点提示暂时不可用”是常见的问题之一
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,“节点提示暂时不可用”是常见的问题之一。本文将探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务的正常运行。通过检查服务实例状态、网络连接、Nacos配置、调整健康检查策略等步骤,可以有效解决这一问题。
289 4
|
Java 网络安全 Nacos
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。
Nacos作为流行的微服务注册与配置中心,其稳定性和易用性备受青睐。然而,实际使用中常遇到“客户端不发送心跳检测”的问题。本文深入探讨该问题的原因及解决方案,帮助开发者快速定位并解决问题,确保服务正常运行。通过检查客户端配置、网络连接、日志、版本兼容性、心跳策略、注册状态、重启应用和环境变量等步骤,系统地排查和解决这一问题。
244 3
|
安全 Nacos 数据库
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改
Nacos是一款流行的微服务注册与配置中心,但直接暴露在公网中可能导致非法访问和数据库篡改。本文详细探讨了这一问题的原因及解决方案,包括限制公网访问、使用HTTPS、强化数据库安全、启用访问控制、监控和审计等步骤,帮助开发者确保服务的安全运行。
693 3
|
负载均衡 Java Nacos
SpringCloud基础2——Nacos配置、Feign、Gateway
nacos配置管理、Feign远程调用、Gateway服务网关
SpringCloud基础2——Nacos配置、Feign、Gateway
|
Kubernetes Nacos 容器
nacos注册不上
我正在使用开源的Nacos,并已在Kubernetes中部署了Nacos服务,通过端口映射可在集群外访问Nacos控制台。Kubernetes使用NodePort类型暴露了8848、9848、9849、7848和9555端口,但在尝试注册时遇到问题,出现“Client not connected, current status: STARTING”的错误,导致启动失败。
218 1

热门文章

最新文章