Nacos学习
系列文章目录
JavaSE | ||
|---|---|---|
| 基础知识、数据类型学习 | 万年历项目 | 代码逻辑训练习题 |
| 代码逻辑训练习题 | 方法、数组学习 | 图书管理系统项目 |
| 面向对象编程:封装、继承、多态学习 | 封装继承多态习题 | 常用类、包装类、异常处理机制学习 |
| 集合学习 | IO流、多线程学习 | 仓库管理系统JavaSE项目 |
| 员工管理系统、多表查询、反射实现DBHelper学习 | DML、DDL、数据库对象学习 | |
JavaWeb | ||
| 网络编程、各种标签、CSS学习 | ECMAScript、BOM学习 | DOM、jQuery学习 |
| Servlet、JSP、Cookie、Ajax学习 | 融资管理系统JavaWeb项目 | |
框架 | ||
| MyBatis框架学习 | 逆向工程、Spring框架IOC、AOP学习 | SpringMVC框架学习 |
| SpringBoot框架学习 | 招聘网站框架项目 | Vue介绍、窗体内操作、窗体间操作学习 |
| Vue路由配置、网络请求访问框架项目、element组件介绍学习 | 标准管理系统Vue项目 | |
微服务 | ||
| Linux安装、Nginx反向代理、负载均衡学习 | Docker学习 | Jenkins学习 |
| Nexus学习 | Spring Security学习 | RabbitMQ学习 |
| Redis学习 | MongoDB学习 | MongoDB学习 |
| Nacos学习 |
文章目录
- 系列文章目录
- 前言
- 一、Nacos介绍
- 1. Spring Cloud介绍
- 2. 微服务和微服务架构介绍
- 3. Nacos介绍
- 二、Nacos安装
- 1. 拉取Docker镜像
- 2. 安装Nacos
- 三、Nacos整合SpringBoot
- 1. 注册中心
- 1.1 创建Maven项目
- 1.2 添加配置信息
- 1.3 编写bootstrap.yml配置文件
- 1.4 编写application.properties配置文件
- 1.5 编写SpringBootMain启动类
- 1.6 访问Nacos
- 2. 配置中心
- 2.1 配置application.yml文件
- 2.2 配置UserController文件
- 2.3 访问网站
- 2.4 添加依赖
- 2.5 创建命名空间
- 2.6 配置中心添加配置文件
- 2.7 修改bootstrap.yml配置文件
- 2.8 再次访问页面
- 总结
前言
本文我们要讲述:
Nacos学习
在下攸攸太上,这是在地球上所用假身的所用假名
一、Nacos介绍
1. Spring Cloud介绍
Spring Cloud是一个基于Spring Boot的分布式系统开发工具包,它整合了各种成熟的服务框架,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等。通过Spring Boot的简便开发风格,Spring Cloud简化了分布式系统基础设施的开发,使得分布式系统的部署和维护变得简单易懂。它并不是重复造轮子,而是将各家公司开发的经过实际考验的服务框架进行整合封装,提供一键启动和部署的便利性。总之,Spring Cloud为开发者提供了一套简单易用的工具包,用于构建高效、可靠的分布式系统。
2. 微服务和微服务架构介绍
微服务是一种软件架构风格,通过将原本庞大的单体应用拆分成多个小而独立的服务来构建系统。每个微服务都运行在自己的进程中,并通过轻量级的通信机制进行相互协作。微服务之间可以独立开发、部署和扩展,每个服务都可以使用不同的技术栈和数据库。通过将系统拆分成多个小的服务,微服务架构可以提供以下优势:
灵活性和可伸缩性:由于每个微服务都是独立的,开发团队可以根据需要独立开发、测试、部署和扩展每个服务。这使得系统更加灵活,并能够根据需求快速进行横向扩展,以应对高并发和大流量的需求。
独立部署和快速迭代:微服务架构允许团队独立部署和更新每个微服务,而无需影响整个系统。这意味着团队可以更快地推出新功能和修复bug,快速响应市场需求。
技术多样性:每个微服务都可以使用适合其需求的技术栈和数据库。这使得团队能够选择最适合每个服务的技术,从而提高开发效率和系统性能。
容错性和可伸缩性:由于每个微服务都是独立的,一个服务的故障不会影响整个系统的稳定性。此外,系统可以根据负载需求对每个服务进行独立的扩展,以确保高可用性和高性能。
总之,微服务架构通过将系统拆分成多个小的、独立的服务,提供了灵活性、可伸缩性和快速迭代的优势。它使得团队能够更加敏捷地开发和维护系统,并且能够更好地应对高并发和大规模应用的需求。
3. Nacos介绍
Nacos是阿里巴巴开源的一个动态服务发现和配置管理平台,它是Spring Cloud Alibaba的核心组件之一。Nacos具有两个核心功能:注册中心和配置中心。
作为注册中心,Nacos可以实现服务的注册和发现。服务提供者在启动时将自己注册到Nacos上,服务消费者可以通过查询Nacos获取可用的服务实例列表,并进行负载均衡和调用。Nacos提供了丰富的服务发现功能,支持基于DNS和HTTP的服务发现,并支持多种服务注册方式,如主动注册和配置文件注册等。它还支持健康检查和自动摘除故障节点,以保证系统的稳定性和可靠性。
作为配置中心,Nacos可以集中管理系统的配置信息。开发团队可以将应用的配置文件存储在Nacos中,并通过Nacos的配置接口获取配置信息。Nacos支持动态配置刷新,可以在配置变更时自动通知应用程序进行更新,无需重启应用。此外,Nacos还提供了配置的分组、命名空间和灰度发布等功能,方便进行配置的管理和控制。
除了注册中心和配置中心的功能,Nacos还具有其他特性,如服务路由和流量管理、服务熔断和降级、动态DNS服务等。它可以与Spring Cloud和Spring Boot无缝集成,并提供了便捷的API和控制台界面来管理和监控服务。
总结起来,Nacos是一个功能强大的注册中心和配置中心,它为微服务架构提供了服务发现和配置管理的核心功能。通过使用Nacos,开发团队可以轻松实现服务的注册和发现,并统一管理系统的配置信息,提高开发效率和系统的可维护性。
二、Nacos安装
1. 拉取Docker镜像
docker pull nacos/nacos-server:1.3.1

2. 安装Nacos
mkdir -p /usr/local/docker/nacos/init.d /usr/local/docker/nacos/logsdocker run -d \
-p 8848:8848 \
-e MODE=standalone \
-e PREFER_HOST_NAME=hostname \
-v /usr/local/docker/nacos/init.d:/home/nacos/init.d \
-v /usr/local/docker/nacos/logs:/home/nacos/logs \
--name nacos nacos/nacos-server:1.3.1

三、Nacos整合SpringBoot
1. 注册中心
1.1 创建Maven项目

1.2 添加配置信息
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.0.7.RELEASE</version></parent><properties><java.version>1.8</java.version><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding><spring-boot.version>2.6.13</spring-boot.version><jwt.version>0.7.0</jwt.version><fastjson.version>1.2.60</fastjson.version><spring-cloud-alibaba.version>2.0.3.RELEASE</spring-cloud-alibaba.version><spring-cloud.version>Finchley.SR2</spring-cloud.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>compile</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId></dependency><!--json--><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>${fastjson.version}</version><scope>compile</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency></dependencies><dependencyManagement><dependencies><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-dependencies</artifactId><version>${spring-cloud.version}</version><type>pom</type><scope>import</scope></dependency><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-alibaba-dependencies</artifactId><version>${spring-cloud-alibaba.version}</version><type>pom</type><scope>import</scope></dependency></dependencies></dependencyManagement><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><classifier>exec</classifier></configuration></plugin></plugins></build>
1.3 编写bootstrap.yml配置文件
spring:cloud:nacos:discovery:server-addr: 192.168.108.186:8848
1.4 编写application.properties配置文件
spring.application.name=nacos01
1.5 编写SpringBootMain启动类
package com.jjy;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class SpringBootMain {public static void main(String[] args) {SpringApplication.run(SpringBootMain.class);}
}
编写后启动程序
1.6 访问Nacos
用户名、密码均为nacos

在服务管理下的服务列表,点击详情


记住这个IP,一会会用到:192.168.56.1
2. 配置中心
2.1 配置application.yml文件
server:port: 99common:name: zhangsanage: 20
2.2 配置UserController文件
package com.jjy.controller;import lombok.Setter;
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("/user")
@Setter
public class UserController {@Value("${common.name}")private String name;@Value("${common.age}")private Integer age;@GetMappingpublic String test(){return name+"----"+age;}}
再次启动项目
2.3 访问网站

2.4 添加依赖
在dependencies标签中添加依赖
<dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
2.5 创建命名空间

自定义命名空间名以及描述后点击新建

命名空间ID保存好,一会会用:7e56a725-f51a-4603-b421-49add0ae9c4b

2.6 配置中心添加配置文件
进入配置管理下的配置列表后,点击nacos0926后点击+号

DataID自定义后、描述可有可无,最后将如下内容填入配置内容,最后发布
common:name: lisi


同样的流程再次配置一个nacos0926copy
common:age: 25


2.7 修改bootstrap.yml配置文件
注意缩进
spring:cloud:nacos:discovery:server-addr: 192.168.108.186:8848config:server-addr: 192.168.108.186:8848file-extension: yamlnamespace: 7e56a725-f51a-4603-b421-49add0ae9c4b #命名空间ID,粘贴复制过来即可。shared-configs:- data-id: nacos0926.yaml #Data ID,粘贴复制过来即可。group: DEFAULT_GROUP #Group 粘贴复制过来即可。- data-id: nacos0926copy.yaml #Data ID,粘贴复制过来即可。group: DEFAULT_GROUP #Group 粘贴复制过来即可。inetutils:preferred-networks: 192.168.56 # IP 粘贴复制过来即可。
重新启动项目
2.8 再次访问页面

总结
本文讲述了:
Nacos:实现微服务架构中的服务发现、配置管理
在下攸攸太上,最近疯狂发文章,只是为了得到一周九篇才能拿到的劳模勋章
相关文章:
Nacos学习
系列文章目录 JavaSE基础知识、数据类型学习万年历项目代码逻辑训练习题代码逻辑训练习题方法、数组学习图书管理系统项目面向对象编程:封装、继承、多态学习封装继承多态习题常用类、包装类、异常处理机制学习集合学习IO流、多线程学习仓库管理系统JavaSE项目员工…...
后台数据管理系统 - 项目架构设计-Vue3+axios+Element-plus(0926)
十四、文章分类添加编辑 [element-plus 弹层] Git仓库:https://gitee.com/msyycn/vue3-hei-ma.git 点击显示弹层 准备弹层 const dialogVisible ref(false)<el-dialog v-model"dialogVisible" title"添加弹层" width"30%">…...
验收测试:从需求到交付的全程把控!
在软件开发过程中,验收测试是一个至关重要的环节。它不仅是对软件质量的把关,也是对整个项目周期的全程把控。从需求分析到最终的软件交付,验收测试都需要严格进行,以确保软件能够符合预期的质量和性能要求。 一、需求分析阶段 在…...
第十七节 鼠标的操作与相应
知识点 -event代表鼠标事件类型 -EVENT_LBUTTONDOWN鼠标左键按下 -EVENT_LBUTTONUP鼠标左键抬起 -EVENT_LBUTTONMOVE鼠标及移动 Point sp(-1, -1); Point ep(-1, -1); Mat temp; static void on_draw(int event, int x, int y, int flags, void* userdata) { Mat imag…...
深圳·2025胶粘剂展会 BOND第六届胶展
BOND第六届胶展、2025大湾区国际胶粘剂及密封剂展览会 时间:2025年6月25-27日 地址:深圳国际会展中心(新馆) UV胶、快干胶、结构粘结胶、导热胶、低温黑胶、硅胶、SMT贴片红胶、底部填充胶、低温热固胶、COB黑胶、围堰填充胶、U…...
什么是网络安全自动化以及优势与挑战
目录 网络安全自动化的工作原理 网络安全自动化的好处 增强的安全功能 改善表现和姿势 降低安全成本 简化的安全合规性和审计 更好的端点管理 网络安全自动化的挑战 耗时且容易出错的安全流程 可见性降低,风险和成本增加 合规管理 有用的网络安全自动化…...
java中的ArrayList和LinkedList的底层剖析
引入: 数据结构的分类,数据结构可以分成:线性表,树形结构,图形结构。 线性结构(线性表)包括:数组、链表、栈队列 树形结构:二叉树、AVL树、红黑树、B树、堆、Trie、哈夫曼树、并查集 图形结构:邻接矩阵、邻接表 线性表是具有存…...
占领矩阵-第15届蓝桥省赛Scratch中级组真题第5题
[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第190讲。 如果想持续关注Scratch蓝桥真题解读,可以点击《Scratch蓝桥杯历年真题》并订阅合集,…...
[论文笔记] Chain-of-Thought Reasoning without Prompting
分析: 在CoT解码路径中,我们可以看到模型在第三个位置(𝑖? = 3)开始展示推理过程,并且给出了正确的答案“8”。模型首先识别出说话者有3个苹果,然后识别出爸爸比说话者多2个,即5个苹果,最后将这两个数量相加得到总数8个苹果。 这个例子表明,通过探索替代的解码路径…...
C++八股进阶
之前那个只是总结了一下常考点,这个是纯手打记笔记加深理解 这里写目录标题 C的四种智能指针为什么要使用智能指针?四种智能指针: C中的内存分配情况C中的指针参数传递和引用参数传递C 中 const 和 static 关键字(定义࿰…...
渗透测试--文件上传常用绕过方式
文件上传常用绕过方式 1.前端代码,限制只允许上传图片。修改png为php即可绕过前端校验。 2.后端校验Content-Type 校验文件格式 前端修改,抓取上传数据包,并且修改 Content-Type 3.服务端检测(目录路径检测) 对目…...
音视频生态下Unity3D和虚幻引擎(Unreal Engine)的区别
技术背景 好多开发者跟我们做技术交流的时候,会问我们,为什么有Unity3D的RTMP|RTSP播放模块,还有RTMP推送和轻量级RTSP服务模块,为什么不去支持虚幻引擎?二者区别在哪里?本文就Unity3D和虚幻引擎之间的差异…...
搭建基于H.265编码的RTSP推流云服务器
一、前言 网上能够找到的RTSP流地址,均是基于H.264编码的RTSP流地址,无法测试应用是否可以播放H265实时流为此,搭建本地的把H.264转码成H.265的RTSP服务器,不管是通过VLC搭建本地RTSP服务器,还是通过FFmpeg搭建本地RT…...
C++20 std::format
一、前言 1、传统 C 格式化的问题与挑战 可读性差:使用 C 中的 printf 和 scanf 家族函数进行格式化输出和输入时,它们的语法较为复杂,难以阅读。在较大的代码项目中,可读性差会导致维护困难。类型安全性差:printf 和…...
Python基础知识 (九)os模块、异常、异常的传递性
目录 OS模块 目录的具体操作 什么是异常 异常常见处理方式 异常分类: 捕获一个指定异常 捕获多个异常 捕获所有异常 异常具有传递性 OS模块 在Python中,os模块的常用函数分为两类: (a)通过os.path调用的函数…...
鸿蒙手势交互(三:组合手势)
三、组合手势 由多种单一手势组合而成,通过在GestureGroup中使用不同的GestureMode来声明该组合手势的类型,支持顺序识别、并行识别和互斥识别三种类型。 GestureGroup(mode:GestureMode, gesture:GestureType[]) //- mode:为GestureMode枚…...
【计算机方向】中科院二区TOP神刊!国人发文友好,刊文量高,录用容易!
期刊解析 🚩本 期 期 刊 看 点 🚩 中科院二区TOP期刊! 审稿友好,IF4.8,自引率6.2% 最新年度发文530。 今天小编带来计算机领域SCI快刊的解读! 如有相关领域作者有意投稿,可作为重点关注&am…...
Stable Diffusion 保姆级教程
1. 引言 近年来,Stable Diffusion 成为了图像生成领域的热门技术,它是一种基于扩散模型的生成模型,可以通过输入简单的文本描述生成高质量的图像。相比传统的生成对抗网络(GAN),Stable Diffusion 更具稳定…...
踩坑记录:adb修改settings数据库ContentObserver无回调
在Android 14版本开发过程中遇到一个,通过adb修改settings数据库,发现生效但是监听的ContentObserver无回调 以背光亮度值调节为例 adb shell settings put system screen_brightness 18 调节亮度值到指定值,修改完后查看 adb shell set…...
JAVA毕业设计183—基于Java+Springboot+vue的旅游小程序系统(源代码+数据库)
毕设所有选题: https://blog.csdn.net/2303_76227485/article/details/131104075 基于JavaSpringbootvue的旅游小程序系统(源代码数据库)183 一、系统介绍 本项目前后端不分离,分为用户、管理员两种角色 1、用户: 注册、登录、公告信息(…...
dedecms 织梦自定义表单留言增加ajax验证码功能
增加ajax功能模块,用户不点击提交按钮,只要输入框失去焦点,就会提前提示验证码是否正确。 一,模板上增加验证码 <input name"vdcode"id"vdcode" placeholder"请输入验证码" type"text&quo…...
Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Caliper 配置文件解析:config.yaml
Caliper 是一个区块链性能基准测试工具,用于评估不同区块链平台的性能。下面我将详细解释你提供的 fisco-bcos.json 文件结构,并说明它与 config.yaml 文件的关系。 fisco-bcos.json 文件解析 这个文件是针对 FISCO-BCOS 区块链网络的 Caliper 配置文件,主要包含以下几个部…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
初学 pytest 记录
安装 pip install pytest用例可以是函数也可以是类中的方法 def test_func():print()class TestAdd: # def __init__(self): 在 pytest 中不可以使用__init__方法 # self.cc 12345 pytest.mark.api def test_str(self):res add(1, 2)assert res 12def test_int(self):r…...
视觉slam十四讲实践部分记录——ch2、ch3
ch2 一、使用g++编译.cpp为可执行文件并运行(P30) g++ helloSLAM.cpp ./a.out运行 二、使用cmake编译 mkdir build cd build cmake .. makeCMakeCache.txt 文件仍然指向旧的目录。这表明在源代码目录中可能还存在旧的 CMakeCache.txt 文件,或者在构建过程中仍然引用了旧的路…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
libfmt: 现代C++的格式化工具库介绍与酷炫功能
libfmt: 现代C的格式化工具库介绍与酷炫功能 libfmt 是一个开源的C格式化库,提供了高效、安全的文本格式化功能,是C20中引入的std::format的基础实现。它比传统的printf和iostream更安全、更灵活、性能更好。 基本介绍 主要特点 类型安全:…...
