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

在这里插入图片描述

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

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

在这里插入图片描述


🐳结语

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

带你用Python制作一个经典必收藏的游戏:地铁跑酷(含完整代码)

名字&#xff1a;阿玥的小东东 学习&#xff1a;Python、C/C 主页链接&#xff1a;阿玥的小东东的博客_CSDN博客-python&&c高级知识,过年必备,C/C知识讲解领域博主 目录 一、游戏简介 二、游戏设计 引入必要的库 初始化游戏 定义游戏元素 定义游戏循环 更新游戏…

Qt QGraphicsScene、QGraphicsView类实现仪表盘

Qt QGraphicsScene、QGraphicsView类实现仪表盘 【1】UI界面设计【2】效果【3】QGraphicsScene简介【4】QGraphicsEllipseItem简介【5】QGraphicsPolygonItem简介【6】QGraphicsLineItem简介【7】QGraphicsView简介【8】仪表源码头文件源码 【1】UI界面设计 【2】效果 【3】QGr…

caffeine和google-guava cache缓存使用详解和源码介绍

google-guava cache 1.pom引入其依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>20.0</version></dependency> 2.具体使用 com.google.common.cache.LoadingCache<Strin…

leetcode题集训 sql

目录 背景步骤175组合两个表&#xff08;多表联查&#xff09;176 177 第n高的薪水&#xff08;Distinct关键字 排序&#xff09;178分数排名 &#xff08;排序 order over关键字&#xff09;179 连续出现的数字 &#xff08;模拟多张表联查&#xff09;181. 超过经理收入的员工…

TCP/IP协议是什么?

78. TCP/IP协议是什么&#xff1f; TCP/IP协议是一组用于互联网通信的网络协议&#xff0c;它定义了数据在网络中的传输方式和规则。作为前端工程师&#xff0c;了解TCP/IP协议对于理解网络通信原理和调试网络问题非常重要。本篇文章将介绍TCP/IP协议的概念、主要组成部分和工…

Elasticsearch:使用 SIMD 指令加速向量搜索

作者&#xff1a;Chris Hegarty, Elastic Principal Engineer, Lucene PMC 翻译&#xff1a;杰瑞朱 多年来&#xff0c;Java 平台上运行的代码一直受益于自动向量化 —— HotSpot C2 编译器中的 superword 优化&#xff0c;将多个标量操作打包到 SIMD&#xff08;单指令多数据…

Git:git merge和git rebase的区别

分支合并 git merge是用来合并两个分支的。比如&#xff1a;将 b 分支合并到当前分支。同样git rebase b&#xff0c;也是把 b 分支合并到当前分支。他们的 「原理」如下&#xff1a; 假设你现在基于远程分支"origin"&#xff0c;创建一个叫"mywork"的分支…

【react全家桶学习】react的 (新/旧) 生命周期(重点)

目录 生命周期&#xff08;旧&#xff09; 挂载时的生命周期 constructor&#xff08;props&#xff09; componentWillMount&#xff08;&#xff09;-------------新生命周期已替换 render&#xff08;&#xff09; componentDidMount&#xff08;&#xff09;--- 组件…

PACS/RIS医学影像管理系统源码 提供先进图像处理和算法

PACS&#xff08;医学影像存档与通信系统&#xff09;主要应用于医学影像的存储、传输和显示。它可以使医生突破胶片的局限&#xff0c;对病人的影像进行全方位的处理和观察&#xff0c;以便得出更准确的诊断。同时&#xff0c;PACS可以节省大量的胶片&#xff0c;降低成本。医…

flex布局瀑布流占位两边对齐不对称

.page{display: flex;justify-content: space-between;flex-wrap: wrap; }.page:after {content: ;width: 400px; // 也可以 flex:1}

jmeter:BeanShell预处理程序获取/设置/引用变量

BeanShell预处理程序 1、局部变量 获取局部变量&#xff1a;vars.get("变量名") 设置局部变量&#xff1a;vars.put("变量名",变量值) 调用 ${变量名} 2、全局变量 获取局部变量&#xff1a;props.get("变量名") 设置局部变量&#xff1a…

KNIME工作流和节点比较功能

KNIME工作流和节点比较功能是一个在 << KNIME 视觉化数据分析 >> 中没有讲到的知识点。 KNIME工作流和节点比较功能在以下几种情况下非常有用&#xff1a; 版本控制&#xff1a;此功能可以跟踪工作流和节点中的更改。如果需要返回到之前的工作流或节点版本&#xf…

Vscode platformio Arduino开发STM32,点灯+串口调试

1.工具 USB-TTL(非常便宜&#xff0c;几块钱)STM32F103C8T6(几块钱) 2.引脚连线 USB-TTLSTM32TXPA10RXPA9VCC3.3VGNDGND 注意事项&#xff1a; 跳线帽位置&#xff1a;BOOT0接高电平(1)&#xff0c;BOOT1接低电平(0)每次上传程序前需要按一下复位键(之后&#xff0c;跳线帽…

2020年全国硕士研究生入学统一考试管理类专业学位联考逻辑试题——纯享题目版

&#x1f3e0;个人主页&#xff1a;fo安方的博客✨ &#x1f482;个人简历&#xff1a;大家好&#xff0c;我是fo安方&#xff0c;考取过HCIE Cloud Computing、CCIE Security、CISP等证书。&#x1f433; &#x1f495;兴趣爱好&#xff1a;b站天天刷&#xff0c;题目常常看&a…

Nginx SSL使用自制证书

1. 生成证书 keytool -genkey -v -alias <Alias别名> -keyalg RSA -keystore <KeyStore文件> -validity <有效期> keytool -genkey -v -alias nginx -keyalg RSA -keystore nginx.keystore -validity 36500 alias别名为 nginxkeystore文件为 nginx.keystore…

【Nginx】第七章 Nginx原理与优化参数配置

7.1 Nginx原理 master-workers的机制的好处 首先&#xff0c;对于每个worker进程来说&#xff0c;独立的进程&#xff0c;不需要加锁&#xff0c;所以省掉了锁带来的开销&#xff0c;同时在编程以及问题查找时&#xff0c;也会方便很多。 其次&#xff0c;采用独立的进程&…

第11节 跟上板块轮动的节奏

板块 文章目录 板块什么是板块板块的分类板块的轮动 板块相关接口本节课任务 什么是板块 股票板块是一些具有相同特征的股票的集合&#xff0c;命名通常也会简单明了的直接按照特征命名。例如沪深300板块&#xff0c;蓝筹板块。对上市公司进行“分班”不论是对于企业还是对于投…

Restful风格笔记

Restful风格知识点 RestController注解 在类上添加RestController可以默认类中的所有方法都带有ResponseBody注解&#xff0c;可以省去一个个添加的麻烦。 RestController RequestMapping("/restful") //CrossOrigin(origins {"http://localhost:8080"…

Linux系统Centos7 安装MySQL8.0详细步骤

MySql安装 1.下载wget命令 yum -y install wget 2. 在线下载mysql安装包 wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm 3.MySQL的GPG升级了&#xff0c;需要更新&#xff0c;如果是新安装的MySQL&#xff0c;执行以下脚本即可&#xff1…

Python MongoDB复习第一章

Python 可以在数据库应用程序中使用。 最受欢迎的 NoSQL 数据库之一是 MongoDB。 MongoDB MongoDB 将数据存储在类似 JSON 的文档中&#xff0c;这使得数据库非常灵活和可伸缩。 为了能够测试本教程中的代码示例&#xff0c;您需要访问 MongoDB 数据库。 您可以在 https:/…