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

相关文章
|
10月前
|
存储 Java 数据库
Spring Boot 注册登录系统:问题总结与优化实践
在Spring Boot开发中,注册登录模块常面临数据库设计、密码加密、权限配置及用户体验等问题。本文以便利店销售系统为例,详细解析四大类问题:数据库字段约束(如默认值缺失)、密码加密(明文存储风险)、Spring Security配置(路径权限不当)以及表单交互(数据丢失与提示不足)。通过优化数据库结构、引入BCrypt加密、完善安全配置和改进用户交互,提供了一套全面的解决方案,助力开发者构建更 robust 的系统。
358 0
|
10月前
|
存储 Kubernetes 安全
Nacos-Controller 2.0:使用 Nacos 高效管理你的 K8s 配置
无论是使用 Nacos-Controller 实现配置的双向同步,还是直接在应用中接入 Nacos SDK 以获得更高级的配置管理特性,都能显著提升配置管理的灵活性、安全性和可维护性。使用 Nacos,您能够更好地管理和优化您的应用配置,从而提高系统的稳定性和可靠性。
868 49
|
存储 网络协议 Nacos
高效搭建Nacos:实现微服务的服务注册与配置中心
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一款动态服务发现、配置管理和服务管理平台。它旨在帮助开发者更轻松地构建、部署和管理分布式系统,特别是在微服务架构中。
2196 81
高效搭建Nacos:实现微服务的服务注册与配置中心
|
10月前
|
存储 人工智能 测试技术
Nacos托管LangChain应用Prompts和配置,助力你的AI助手快速进化
AI 应用开发中,总有一些让人头疼的问题:敏感信息(比如 API-KEY)怎么安全存储?模型参数需要频繁调整怎么办?Prompt 模板改来改去,每次都得重启服务,太麻烦了!别急,今天我们就来聊聊如何用 Nacos 解决这些问题。
|
Cloud Native Java Nacos
springcloud/springboot集成NACOS 做注册和配置中心以及nacos源码分析
通过本文,我们详细介绍了如何在 Spring Cloud 和 Spring Boot 中集成 Nacos 进行服务注册和配置管理,并对 Nacos 的源码进行了初步分析。Nacos 作为一个强大的服务注册和配置管理平台,为微服务架构提供
4671 14
|
SpringCloudAlibaba 网络协议 Cloud Native
Spring Cloud Alibaba-全面详解(学习总结---从入门到深化)
Spring Cloud Alibaba致力于提供微服务开发的一站式解决方案。
16380 3
Spring Cloud Alibaba-全面详解(学习总结---从入门到深化)
|
Java Nacos Sentinel
Spring Cloud Alibaba学习指南
由于在2018年Netflix公司宣布对其核心组件Hystrix、Ribbon、zuul、Eureka等进入维护状态,也就是Spring Cloud Netflix系列。由此Spring Cloud Alibaba就诞生了,值得注意的是Spring Cloud Alibaba完全兼容了Spring Cloud Netflix中的Ribbon、Feign、Eureka等组件,所以基于Spring Cloud Netflix的项目可以无缝迁移到Spring Cloud Alibaba。
855 0
|
敏捷开发 运维 资源调度
Spring Cloud Alibaba学习之开幕
Spring Cloud Alibaba学习之开幕
|
Java Nacos Sentinel
spring coud alibaba与云服务学习
在学习分布式过程中用到spring cloud alibaba以及云服务的相关内容
|
7月前
|
Java Spring 容器
SpringBoot自动配置的原理是什么?
Spring Boot自动配置核心在于@EnableAutoConfiguration注解,它通过@Import导入配置选择器,加载META-INF/spring.factories中定义的自动配置类。这些类根据@Conditional系列注解判断是否生效。但Spring Boot 3.0后已弃用spring.factories,改用新格式的.imports文件进行配置。
1193 0