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、用户: 注册、登录、公告信息(…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
django filter 统计数量 按属性去重
在Django中,如果你想要根据某个属性对查询集进行去重并统计数量,你可以使用values()方法配合annotate()方法来实现。这里有两种常见的方法来完成这个需求: 方法1:使用annotate()和Count 假设你有一个模型Item,并且你想…...
Spring Boot面试题精选汇总
🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...
学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2
每日一言 今天的每一份坚持,都是在为未来积攒底气。 案例:OLED显示一个A 这边观察到一个点,怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 : 如果代码里信号切换太快(比如 SDA 刚变,SCL 立刻变&#…...
代理篇12|深入理解 Vite中的Proxy接口代理配置
在前端开发中,常常会遇到 跨域请求接口 的情况。为了解决这个问题,Vite 和 Webpack 都提供了 proxy 代理功能,用于将本地开发请求转发到后端服务器。 什么是代理(proxy)? 代理是在开发过程中,前端项目通过开发服务器,将指定的请求“转发”到真实的后端服务器,从而绕…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join
纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...
用鸿蒙HarmonyOS5实现中国象棋小游戏的过程
下面是一个基于鸿蒙OS (HarmonyOS) 的中国象棋小游戏的实现代码。这个实现使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chinesechess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├──…...
Axure 下拉框联动
实现选省、选完省之后选对应省份下的市区...
