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、用户: 注册、登录、公告信息(…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...

让AI看见世界:MCP协议与服务器的工作原理
让AI看见世界:MCP协议与服务器的工作原理 MCP(Model Context Protocol)是一种创新的通信协议,旨在让大型语言模型能够安全、高效地与外部资源进行交互。在AI技术快速发展的今天,MCP正成为连接AI与现实世界的重要桥梁。…...
智能AI电话机器人系统的识别能力现状与发展水平
一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...

逻辑回归暴力训练预测金融欺诈
简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

解析奥地利 XARION激光超声检测系统:无膜光学麦克风 + 无耦合剂的技术协同优势及多元应用
在工业制造领域,无损检测(NDT)的精度与效率直接影响产品质量与生产安全。奥地利 XARION开发的激光超声精密检测系统,以非接触式光学麦克风技术为核心,打破传统检测瓶颈,为半导体、航空航天、汽车制造等行业提供了高灵敏…...

【Linux】Linux安装并配置RabbitMQ
目录 1. 安装 Erlang 2. 安装 RabbitMQ 2.1.添加 RabbitMQ 仓库 2.2.安装 RabbitMQ 3.配置 3.1.启动和管理服务 4. 访问管理界面 5.安装问题 6.修改密码 7.修改端口 7.1.找到文件 7.2.修改文件 1. 安装 Erlang 由于 RabbitMQ 是用 Erlang 编写的,需要先安…...

DAY 45 超大力王爱学Python
来自超大力王的友情提示:在用tensordoard的时候一定一定要用绝对位置,例如:tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾: tensorboard的发展历史和原理tens…...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...