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

news2025/1/13 10:53:23

在这里插入图片描述

                                                           💧 深入了解 S p r i n g C l o u d A l i b a b a N a c o s :服务注册和配置中心 \color{#FF1493}{深入了解Spring Cloud Alibaba Nacos:服务注册和配置中心} 深入了解SpringCloudAlibabaNacos:服务注册和配置中心💧          


🌷 仰望天空,妳我亦是行人.✨
🦄 个人主页——微风撞见云的博客🎐
🐳 《数据结构与算法》专栏的文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺
💧 《Java学习笔记》专栏的文章是本人在Java学习中总结的一些知识点~ 💐
🥣 《每天一点小知识》专栏的文章可以丰富你的知识库,滴水成河~ 🌊
🪁 希望本文能够给读者带来一定的帮助~🌸文章粗浅,敬请批评指正!🐥


文章目录

  • 🐳深入了解Spring Cloud Alibaba Nacos:服务注册和配置中心
    • 1. Nacos简介
    • 2. 安装并运行Nacos
      • 2.1 下载Nacos
      • 2.2 解压缩并启动Nacos
    • 3. Nacos作为服务注册中心演示
      • 3.1 创建Spring Boot项目
      • 3.2 编写服务提供者
      • 3.3 配置Nacos注册中心
      • 3.4 启动服务提供者
      • 3.5 检查服务注册
    • 4. Nacos作为服务配置中心演示
      • 4.1 创建Spring Boot项目
      • 4.2 编写配置客户端
      • 4.3 配置Nacos作为配置中心
      • 4.4 创建配置
      • 4.5 启动配置客户端
      • 4.6 检查配置获取
    • 5. 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,我们可以更好地管理和维护微服务应用,实现高可用性和动态扩展。

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

在这里插入图片描述


🐳结语

🐬初学一门技术时,总有些许的疑惑,别怕,它们是我们学习路上的点点繁星,帮助我们不断成长。

🐟积少成多,滴水成河。文章粗浅,希望对大家有帮助!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/693745.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入浅出解析LoRA完整核心基础知识 | 【算法兵器谱】

Rocky Ding 公众号&#xff1a;WeThinkIn 写在前面 【算法兵器谱】栏目专注分享AI行业中的前沿/经典/必备的模型&论文&#xff0c;并对具备划时代意义的模型&论文进行全方位系统的解析&#xff0c;比如Rocky之前出品的爆款文章Make YOLO Great Again系列。也欢迎大家提…

让Ai帮我们画个粽子,它会画成什么样呢?

让Ai帮我们画个粽子&#xff0c;它会画成什么样呢&#xff1f; 本文目录&#xff1a; 一、Ai绘图技术的现状 二、看看Ai理解的粽子是怎样的 2.1、基础粽子 2.2、生成不同风格的粽子 2.2.1、真实风格的粽子 2.2.2、插图风格的粽子 2.2.3、3D风格的粽子 2.2.4、卡通风格…

Mysql锁机制介绍

Mysql锁机制 锁是计算机协调多个进程或线程并发访问某一资源的机制。 在数据库中&#xff0c;除传统的计算资源(如CPU、RAM、I/O等)的争用以外&#xff0c;数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题&#xff0…

vue-cli笔记

vue的生命周期&#xff1a; 借鉴react 钩子函数&#xff1a; change() 挂载完毕&#xff0c;vue完成模板解析&#xff0c;并把初始的真实的dom元素放入到页面后执行 beforeCreate() {// 数据代理和数据监测创建之前console.log(beforeCreate) }, created() {console.l…

深度:全面解析数据智能的金融“炼金术”!

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 金融以其财富效应&#xff0c;成为最新科技的试金石。一项新技术出来后&#xff0c;人们首先闪过的念头就是“能不能用它赚钱”。例如&#xff0c;ChatGPT带火了大模型&#xff0c;人们也开始将目标聚焦到大模型在金融领域的…

【实战】 JWT、用户认证与异步请求(下) —— React17+React Hook+TS4 最佳实践,仿 Jira 企业级项目(五)

文章目录 一、项目起航&#xff1a;项目初始化与配置二、React 与 Hook 应用&#xff1a;实现项目列表三、TS 应用&#xff1a;JS神助攻 - 强类型四、JWT、用户认证与异步请求1~56.用useAuth切换登录与非登录状态7.用fetch抽象通用HTTP请求方法&#xff0c;增强通用性8.用useHt…

AR宇航员互动体验软件:虚拟与现实叠加增强体验感

随着科技的不断发展&#xff0c;人们对太空探索的兴趣和热情也越来越高涨。为了满足人们对太空探索的渴望&#xff0c;广州华锐互动研发了宇航员AR模拟体验软件&#xff0c;这种软件可以让用户身临其境地体验太空探索的过程&#xff0c;提供一种全新的、令人兴奋的太空探索新体…

css基础知识十一:CSS3新增了哪些新特性?

一、是什么 css&#xff0c;即层叠样式表&#xff08;Cascading Style Sheets&#xff09;的简称&#xff0c;是一种标记语言&#xff0c;由浏览器解释执行用来使页面变得更为美观 css3是css的最新标准&#xff0c;是向后兼容的&#xff0c;CSS1/2的特性在CSS3 里都是可以使用…

图解CNN中的卷积(卷积运算、池化、Padding、多通道的卷积)

文章目录 卷积操作池化Padding对多通道&#xff08;channels&#xff09;图片的卷积套上激活函数是什么样的参考&#xff1a; 卷积层是深度学习神经网络中经常使用的一种层。它通过卷积运算来提取输入的特征&#xff0c;常用于图像、语音等信号处理任务中。 卷积层有以下几个参…

rocketmq-spring-boot-starter支持SpringBoot 1.x(spring-context 4.x)版本

1 问题说明 由于历史原因&#xff0c;项目使用的是SpringBoot1.x版本&#xff0c;而且由于种种原因&#xff0c;不能升级。在项目开发迭代过程中&#xff0c;决定使用RocketMQ作为消息中间件&#xff0c;因为是SpringBoot项目&#xff0c;理所应当的引入了rocketmq-spring-boo…

简单聊聊数字孪生与GIS融合的必要性

随着科技的不断发展和应用的不断深入&#xff0c;数字孪生和GIS在各自领域中展现出巨大的潜力。然而&#xff0c;更引人注目的是&#xff0c;数字孪生和GIS的融合将为许多行业带来全新的机遇和变革。在本文中&#xff0c;我们将探讨数字孪生和GIS融合的必要性&#xff0c;以及它…

2023ty计网期末综合题满分冲刺版

1. 假设有段1km长的CSMA/CD网络链路的数据传输率为1Gb/s。设信号在此链路媒介上的传播速度为2x105 km/s&#xff0c;求使用此协议的最短数据帧长度。 &#xff08;1&#xff09;传播时延&#xff1a;1/2000005微秒&#xff0c; &#xff08;2&#xff09;往返时延&#xff1a…

List合并的操作

List合并的操作 1.addAll方法 List list1new ArrayList();List list2new ArrayList();for (int i 0; i < 10; i) {list1.add(i*2);list2.add(i*21);}System.out.println(list1);//方法1&#xff1a;addAlllist1.addAll(list2);System.out.println(list1); 2.Stream操作 L…

ATTCK(二)之ATTCK的发展历史

ATT&CK的发展历史 MITRE公司 MITRE是美国NIST标准化组织选择的专注于网络安全的组织&#xff0c;由美国联邦政府资助。很多安全标准都MITRE制定的&#xff0c;比如有名的漏洞CVE编号规则以及威胁情报格式STIX。所以ATT&CK非常有影响力&#xff0c;而且未来能成为一个公…

MySQL----MHA高可用

文章目录 一、MHA理论1.1什么是 MHA1.2MHA 的组成1.3MHA 的特点 二、MHA的一主两从部署实验设计故障修复步骤&#xff1a; 一、MHA理论 1.1什么是 MHA MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出…

Java 日志重点梳理

大家好&#xff01;我是今越。重点梳理一下在 Java 程序开发中关于日志管理的知识点&#xff0c;以及在 Spring Boot 框架中该如何使用日志。 在 Java 中&#xff0c;日志框架主要分为两大类&#xff1a;日志门面和日志实现。 日志门面 日志门面定义了一组日志的接口规范&am…

LangChain-Agent自定义Tools类 ——输入参数篇(二)

给自定义函数传入输入参数&#xff0c;分别有single-input 参数函数案例和multi-input 参数函数案例&#xff1a; from langchain.agents import Tool from langchain.tools import BaseTool from math import pi from typing import Union from math import pi from typing …

StringBuffer和正则表达式

StringBuffe 获取int类型的最大值和最小值 System.out.println(Integer.MAX_VALUE);//int类型的最大值 System.out.println(Integer.MIN_VALUE);//int类型的最小值输出结果 Integer和String相互转换 Integer i1 new Integer(100); System.out.println(i1);Integer i2 new…

08 | 事务到底是隔离的还是不隔离的?

以下内容出自《MySQL 实战 45 讲》 08 | 事务到底是隔离的还是不隔离的&#xff1f; 事务启动时机 事务启动时机&#xff1a; begin/start transaction 命令并不是一个事务的起点&#xff0c;在执行到它们之后的第一个操作 InnoDB 表的语句&#xff0c;事务才真正启动。如果想…

Gradio的Button组件介绍

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…