初识Nacos

前言

Nacos是一个用于微服务架构下的服务发现和配置管理以及服务管理的综合解决方案(官网介绍),这里的服务发现其实就是注册中心,配置管理就是配置中心,而服务管理是二者的综合;

Nacos特性

1.服务发现与服务健康检查

基于Http接口或DNS发现其他服务,并提供健康检测服务,以防止向不健康的主机或服务实例发送请求

2.动态配置管理

允许在所有环境中以集中和动态的方式管理所有的服务配置,使得配置和更改更加高效

3.动态DNS服务

基于DNS协议,为了支持更多语言

4.服务和元数据管理

能够从微服务平台视角管理服务

配置管理

对于一个分布式架构的项目,由于服务的拆分也造成了配置文件分散,而使用Nacos作为配置中心,可以对程序中的一些配置文件进行统一管理,程序只需要将配置文件发布到配置中心,Nacos可以自动地进行管理,后续服务在运行时就可以通过网络协议从配置中心中获取配置。

nacos配置中心启动

setp1:直接双击startup.cmd运行

step1:也可以通过命令行方式启动

#切换目录

cd nacos/bin

#命令启动

startup.cmd -m standalone

step2:在浏览器地址栏中输入 http://localhost:8848/nacos,即可访问nacos登录页面,用户名密码均为nacos

向Nacos配置中心添加一个配置

step1:发布配置

点击发布后,该配置文件就新增好了

step2:获取配置内容

1.在java工程中添加坐标

2.编写代码

public static void main(String[] args) throws NacosException {//使用nacos Client 远程获取nacos上的服务//1.data idString dataId ="nacos-simple-demo.yaml";//2.groupString group ="DEFAULT_GROUP";//3.nacos服务的地址 (ip 端口)String serverAddr="127.0.0.1:8848";Properties properties = new Properties();properties.put("serverAddr",serverAddr);//获取nacos服务上的配置ConfigService configService = NacosFactory.createConfigService(properties);String config = configService.getConfig(dataId, group, 5000);System.out.println(config);
}

运行结果:

Nacos配置管理模型

对于Nacos配置管理,可以通过Namespace、group、Data Id来确认到一个具体的配置集

配置集(Data Id)

在系统中,一个配置文件通常就是一个配置集,一个配置集可以包含系统的各种配置信息,例如数据源、日志、线程池等等。这些配置集的Id即DataId。

配置项

配置集中的一个个配置内容就是配置项,它代表一个具体可配置的参数与其值,通常以key = value 的形式存在.

配置分组(group)

是指对配置集进行分组,通过一个有意义的字符串,Buy或Trade来表示,不同的配置分组下都可以有相同的配置集。如果在创建配置时,没有填写配置分组的名称,则使用默认分组。

命名空间(Namespace)

命名空间用于隔离不同的配置环境,例如生产环境,测试环境和开发环境,这是因为不同的环境可能会有不同的配置,或是不同的用户。但是不同的命名空间中可以存在相同名称的配置分组。

到这里其实产生了一个问题,刚刚我们在获取nacos上的服务时,是没有设置Namespace的,也就是默认public.那如果我对Namespace进行设置,改成了dev,这个时候怎么获取到dev环境下的配置文件呢。

🆗这个时候,我们只需要在刚才的java代码中再增加一个属性namespace,值可以从nacos中获取到,下图所示,然后将namespace属性存放到properties中,即可。

总结

关于Nacos的基础配置知识就聊到这里啦,后续还会发怎么应用到分布式系统中,加油(ง •_•)ง

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

李宏毅机器学习笔记:RNN循环神经网络

RNN 一、RNN1、场景引入2、如何将一个单词表示成一个向量3种典型的RNN网络结构 二、LSTMLSTM和普通NN、RNN区别 三、 RNN的训练RNN与auto encoder和decoder 四、RNN和结构学习的区别五、pytorch实现RNN与LSTM5.1为何 H o u t h i d d e n s i z e H_{out}hidden_size Hout​hi…

一个集成的BurpSuite漏洞探测插件1.1

免责声明 本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利&#xff0c…

Mysql数据库基础总结:

什么是数据库: 数据库(DataBase):存储和管理数据的一个仓库。 数据库类型分为:关系型数据库和非关系型数据库。 关系型数据库(SQL):存储的数据以行和列为格式,类似于e…

手写Mybatis

Mybatis核心配置文件就是为了配置Configration 因此要首先会解析Mybatis核心配置文件 首先使用dom4J解析Mybatis核心配置文件 新建模块演示dom4j解析.xml 目录放错了 无所谓 引入依赖 从原来项目可以拷贝过来 就些简单配置就好 解析核心配置文件和解析xxxMapper.xml映射文件…

vue学习之属性绑定

内容渲染 采用 &#xff1a;进行属性渲染创建 demo3.html,内容如下 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"&…

CHS零壹视频恢复程序OCR使用方法

目前CHS零壹视频恢复程序监控版、专业版、高级版已经支持了OCR&#xff0c;OCR是一种光学识别系统&#xff0c;通俗说就和扫描仪带的OCR软件一样的原理&#xff1a; 分析照片->OCR获取字符串->整理字符串->输出 使用方法如下&#xff08;以CHS零壹视频恢复程序监控版…

使用LlamaIndex构建自己的PandasAI

推荐&#xff1a;使用 NSDT场景编辑器 快速搭建3D应用场景 Pandas AI 是一个 Python 库&#xff0c;它利用生成 AI 的强大功能来增强流行的数据分析库 Pandas。只需一个简单的提示&#xff0c;Pandas AI 就可以让你执行复杂的数据清理、分析和可视化&#xff0c;而这以前需要很…

STL线程各种容器对比、数组和vector如何互相转换

STL vector如何扩展内存和释放内存STL中各种容器对比STL中的swap函数STL中哈希表扩容STL迭代器失效的情况和原因vector删除元素后如何避免当前迭代器会失效vector的iterator和const_iterator和const iterator vector如何扩展内存和释放内存 内存增长 1.5还是2倍扩容 gcc 二倍扩…

微信小程序ibeacon搜索功能制作

以下是一个完整的微信小程序代码示例&#xff0c;演示如何实现iBeacon搜索功能&#xff1a; // 在小程序页面中的js文件中编写代码Page({data: {beacons: [] // 存储搜索到的iBeacon设备信息},onReady() {// 初始化iBeaconwx.startBeaconDiscovery({uuids: [你的UUID], // 替换…

数据结构和算法(1):开始

算法概述 所谓算法&#xff0c;即特定计算模型下&#xff0c;旨在解决特定问题的指令序列 输入 待处理的信息&#xff08;问题&#xff09; 输出 经处理的信息&#xff08;答案&#xff09; 正确性 的确可以解决指定的问题 确定性 任一算法都可以描述为一个由基本操作组成的序…

用户促活留存新方式——在APP中嵌入小游戏

随着APP同类产品的不断出现&#xff0c;APP开发者们面临着激烈的竞争&#xff0c;很多APP下载后被新的APP取代&#xff0c;获客成本越来越高。同时开发者还会面临用户粘性差、忠诚度低、用完即走、留存困难&#xff0c;商业化价值被大大缩减。 在APP中植入小游戏来提高用户活跃…

Vue——vue3+element plus实现多选表格使用ajax发送id数组

代码来源: Vue 3结合element plus&#xff08;问题总结二&#xff09;之 table组件实现多选和清除选中&#xff08;在vue3中获取ref 的Dom&#xff09;_multipletableref.value.togglerowselection()打印出来的是u_子时不睡的博客-CSDN博客 前言 为了实现批量删除功能的功能…

【Python爬虫实战】爬虫封你ip就不会了?ip代理池安排上

前言 在进行网络爬取时&#xff0c;使用代理是经常遇到的问题。由于某些网站的限制&#xff0c;我们可能会被封禁或者频繁访问时会遇到访问速度变慢等问题。因此&#xff0c;我们需要使用代理池来避免这些问题。本文将为大家介绍如何使用IP代理池进行爬虫&#xff0c;并带有代…

C语言练习:输入日期输出该日期为当年第几天

用scanf()输入某年某月某日&#xff0c;判断这一天是这一年的第几天。以3月5日为例&#xff0c;应该先把前两个月的加起来&#xff0c;然后再加上5天即本年的第几天&#xff0c;特殊情况&#xff0c;闰年且输入月份≥3时需考虑多加一天。注&#xff1a;判断年份是否为闰年的方法…

【C刷题】day1

一、选择题 1.正确的输出结果是 int x5,y7; void swap() { int z; zx; xy; yz; } int main() { int x3,y8; swap(); printf("%d,%d\n"&#xff0c;x, y); return 0; } 【答案】&#xff1a; 3&#xff0c;8 【解析】&#xff1a; 考点&#xff1a; &#xff…

Matlab如何导入Excel数据并进行FFT变换

如果你发现某段信号里面有干扰&#xff0c;想要分析这段信号里面的频率成分&#xff0c;就可以使用matlab导入Excel数据后进行快速傅里叶变换&#xff08;fft&#xff09;。 先直接上使用方法&#xff0c;后面再补充理论知识。 可以通过串口将需要分析的数据发送到串口助手&a…

postgresql-窗口函数

postgresql-窗口函数 窗口函数简介窗口函数的定义分区排序选项窗口选项 窗口函数简介 包括 AVG、COUNT、MAX、MIN、SUM 以及 STRING_AGG。聚合函数的作用是针对一组数据行进行运算&#xff0c;并且返回一条汇总结果 分析的窗口函数&#xff08;Window Function&#xff09;。 …

投稿指南【NO.12_8】【极易投中】核心期刊投稿(组合机床与自动化加工技术)

近期有不少同学咨询投稿期刊的问题&#xff0c;大部分院校的研究生都有发学术论文的要求&#xff0c;少部分要求高的甚至需要SCI或者多篇核心期刊论文才可以毕业&#xff0c;但是核心期刊要求论文质量高且审稿周期长&#xff0c;所以本博客梳理一些计算机特别是人工智能相关的期…

单相并联下垂控原理

Part1 上述有个核心的piont是等效阻抗上的电压一般时很小的&#xff0c;这就导致逆变器输出电压矢量E和负载电压矢量UL之间的夹角很小 》基于上述的结论有助于我们去简化下垂控制的公式&#xff01;&#xff01;&#xff01; Part2 上述得到负载电流&#xff0c;接着乘以负载…

mac 查看端口占用

sudo lsof -i tcp:port # 示例 sudo lsof -i tcp:8080 杀死进程 sudo kill -9 PID # 示例 sudo kill -9 8080