Java开发 - 配置中心初体验

【Nacos】配置中心 配置中心就是对这些配置项进行统一管理.通过配置中心,可以集中查看,修改和删除配置,无需再逐个修改配置文件,提高效率的同时,也降低了出错的风险 本文从多个方面对Nacos的配置中心进行了介绍以及简单的操作示例,让初学者更好地能够对Nacos配置中心熟悉和掌握 阅读详情

目录

前言

配置中心介绍

什么是配置中心

Nacos配置中心

数据结构

命名空间

分组

服务

配置中心添加配置

读取配置

本地添加依赖

本地添加配置

测试

优先级说明

结语


前言

前文讲了ELK,ELK说简单也简单,说复杂也复杂,但说实话,微服务里这么些个东西,从部署角度来看,比起Dubbo,Nacos这些,ELK算是比较难的一个了,上一篇博客博主也只是简单的讲解了安装,关于具体使用还差得很远。所以里面推荐了官方的账号,官方的账号里面内容很多很大,需要耐心去学习。博主还是推荐大家去官方的c站账号下学习,又具体又全面,而且还不会有问题。开始新的学习前,那喊两声:ELK牛逼,ELK真难,加油!加油!

配置中心介绍

配置中心我们也是针对微服务来说的,所以这个配置中心当然是微服务的配置中心,下面,我们就来说说什么是配置中心。

什么是配置中心

就像文字描述的那样,配置中心主要用来解决配置问题,在微服务项目中,我们的配置一般是写在yml文件或者properties文件中的,这是我们所熟知的一种写法。

有时候,多个子项目共用一个配置的时候,当需要修改时,往往需要去修改每一个子项目的配置,搞不好还会改错,这时候,如果能有一个地方可以统一修改,全部生效,那该是多么轻松啊,这就是配置中心的作用。

总结一下就是:配置中心能够达到高效修改各模块配置的作用。

Nacos配置中心

Nacos我们都知道,我们前面微服务中已经学过,我们知道Nacos是注册中心,所有的子项目都在Nacos服务器上留下了自己的身份信息,所以Nacos就可以尝试对已知的服务器做一些管理,比如配置。

Nacos作为配置中心支持的文件格式很多,除了我们所熟悉的properties,yml,还支持txt,json,xml等,实际我们可能用不到那么多。

数据结构

Nacos数据结构,简单分,可以分为三个部分,分别是:命名空间,分组,服务。

命名空间

命名空间又命Namespace,是Nacos提供的最大的数据结构,一个Nacos可以有多个命名空间,命名空间也可以有多个分组,命名空间在Nacos中可自行创建,创建方法见下方:

f67debcbec5e4232bebdc8aec96e4828.png

我们创建的命名空间叫:

00b0500ca18a4ac588e98c97a9f0f757.png

要注意,默认的public命名空间不能删除和修改,你也无法删除和修改。只要自己创建了命名空间,注册Nacos时就可以指定可注册到的命名空间名称了。好处就是,多个命名空间可以对项目起到隔离的作用,使他们之间互不干扰。

要切换命名空间,请看下图:

2f104dec30ab45c69ff14a87849429bc.png  

分组

命名空间中,我们说,一个命名空间可以有多个分组,分组的作用就是对他们做进一步的隔离,不需要额外的分组时,分组名可自定义,我们一般推荐使用:DEFAULF_GROUP。细心的小伙伴会发现,这在我们微服务项目中也是有使用的。

服务

当命名空间和分组名称都确定之后,就可以添加服务和配置了,我们微服务中的各模块就是服务,默认保存在public命名空间下,下面我们就用配置中心功能来修改下配置的位置,设置了命名空间,其实就是设置命名空间ID,这在我们的命名空间截图中是有体现的,大家可以翻上去看一看。

值得一提的是,配置中心的优先级高于项目中已有的yml等配置文件的优先级。这一点,我们在下面会继续讲他们的优先级,这决定了他们的生效顺序。

配置中心添加配置

下面,我们来添加一下配置,就以我们前面学的微服务项目中的cart模块为例,下面开始添加配置:

04020798f6d4499f803e2efbc29897aa.png

配置管理-配置立列表-右上方+号,点击后进入下面的页面:

823e687e9df6453c86eedc15171cc713.png

Data ID就是该配置的名字,可自定义,建议名称格式:nacos-cart.yaml。

Group默认为我们推荐的名称,没有其他分组的情况建议使用默认的,避免搞乱。

配置格式我们建议选YAML,这种格式的层级效果明显,便于观察,主要是现在仅支持YAML和Properties。

配置内容,根据需要把我们本地的配置文件中的内容填写进来。

这里为了测试效果,我们不会把整个配置文件都贴进去,其实贴进去也可以,但为了看效果,我们只把数据库链接部分的配置贴进去,同时把本地文件中数据库部分删除。

像这样:

34498bc60df541d5971140164c715876.png

e70bd74213bd4e878106f38de2ffa91a.png  

读取配置

做完这些还不够,配置中心还不能够正常工作,还需要两步来完成读取配置,让配置中心工作。万丈高楼平地起,虽然前期麻烦一点,但是后面香啊。

本地添加依赖

<!--  配置中心的依赖  -->
<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!--  支持SpringCloud加载系统配置文件的依赖   -->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-bootstrap</artifactId>
</dependency>

本地添加配置

添加配置时,需要我们新建一个file,名字叫bootstrap.yml,千万别写错了,创建成功后前面的logo也是一片叶子,不同的是右下角是个云的标志:

1a5b30672c614b30b348677e44fb4184.png

接着在这个文件中添加配置信息: 

spring:
  cloud:
    nacos:
      discovery:
        server-addr: localhost:8848
      config:
        #  指定配置中心的位置
        server-addr: localhost:8848
        # 指定配置文件所在的组名(命名空间默认public不需要指定)
        group: DEFAULT_GROUP
        # 设置配置文件的后缀名
        # 默认情况下会加载[项目名].[后缀名]为DataId的配置
        # 当前项目名称为nacos-cart所以默认加载的DataId为:nacos-cart.yaml
        file-extension: yaml 

这里里面的文字部分,很重要,特别是group和文件扩展名:

不要纠结这个名字,如果你想要,你可以随便写名字,然后在配置中配置名字:

spring:
  cloud:
    nacos:
      config:
        name: xxxxx

最后一定要点击发布:

4d0fb4497fcc4eb8be55688ab2e7a716.png

发布成功后会有如下提示,接下来就可以准备测试环节了: 

430ce3fced254f918a46cf387709042e.png

测试

测试很简单,运行你的功能就可以了,在此之前,请启动需要开启的服务,如Nacos,seata等,看自己项目需要开启。运行后,只要cart模块能正常运行并工作,你的测试就是成功的,我们在cart中引入了knife4j,它能正常工作,就代表测试是成功的,不再贴测试结果了,请大家严格自行完成测试。

优先级说明

简单来说,bootstrap.yml>bootstrap.properties>application.yml>application.properties。这是从项目启动到启动完成过程中,配置文件生效的先后顺序,可以看到,yml的优先级永远高于properties,bootstrap.yml优先级最高。

bootstrap这组配置文件有点特殊,一般是专门用于加载系统级别的配置,这些配置一般不会轻易修改。

特别注意,只有SpringCloud项目才能加载bootstrap的配置,加载这组配置也是需要依赖的,上面已经给出:spring-cloud-starter-bootstrap,不过我们给出的依赖是2020年之后的依赖,之前的依赖不是这个,是什么我就不说了,避免误导大家,感兴趣的可以查下。

结语

配置中心的使用整体上算是比较简单的,操作性也不强,只要细心一点就可以完成,难度指数只能算是一颗星了,想起上篇ELK博主就不免心中叹息,只怪博主ELK也没学到家,还不能够用最简洁的方式让大家快速学会,革命尚未成功,同志仍需努力,一起加油吧,童鞋们!

Java领域中Java-EE的配置中心搭建 在Java - EE应用开发中,尤其是在分布式系统环境下,应用程序的配置信息(如数据库连接信息、服务地址、系统参数等)分散在各个应用节点中,这给配置的管理和维护带来了极大的困难。搭建配置中心的目的在于集中管理这些配置信息,实现配置的动态更新、版本控制和统一管理,提高系统的可维护性、可扩展性和稳定性。本文的范围涵盖了Java - EE配置中心搭建的各个方面,包括核心概念、算法原理、具体操作步骤、项目实战、应用场景、工具资源推荐等,旨在为开发者提供全面的指导,帮助他们成功搭建和使用Java - EE配置中心。 阅读详情

相关推荐

原生java读取apollo配置中心参数

项目结构 1.创建名为java-apollo的项目 1.1 pom.xml如下: <dependency> <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client</artifactId> <version>1.4.0</version> &l

qq_35310348的博客 4009

Java微服务统一配置中心详解

Nacos 是阿里巴巴开源的一个帮助开发者更易于构建云原生应用配置中心平台,它集成了服务发现、配置管理和服务管理等功能。借助 Nacos,用户可以轻松实现微服务架构下的服务自动发现与健康检查,并通过中心化的配置管理支持 Java 应用程序中的配置文件热更新,这极大地简化了配置变更流程,无需重启服务即可生效。此外,Nacos 还提供了动态 DNS 服务和全面的服务及元数据管理能力,有助于流量管理和安全策略实施。

xingxuechao的专栏 2445

如何做好一个配置中心

最后,引用那句经典的“软件开发里没有银弹”,我想补充一句:“你要知道你手里有哪些类型的子弹。”通过对比和分析,来确定当时,当地,最适合项目的那个方式,比如项目着急上线,先直接把配置文件写死在代码里,都不是不可以的,后期可以再改。如何做好一款配置中心?希望看完本文你能有自己的答案。

csdnYF的博客 966

java框架 -配置中心

https://www.cnblogs.com/dalianpai/p/14311014.html

sinat_36387539的博客 1996

apollo配置中心初探

最近在搞微服务框架的开发,需要有一个配置中心来满足统一管理业务应用以及组件的配置,在此期间也使用了多个配置中心比如:spring cloud config,自研的配置中心,当然还有apollo。 springcloud config需要依托svn等代码托管工具,而且没有统一管理页面;自研的配置中心最燃功能健全,也能够支持动态获取配置,但是不能够使用多种格式的配置文件,也不支持动态更新客户端配置。

ganpuzhong42的博客 9723

Java领域Spring Boot的配置中心搭建

在现代的软件开发中,尤其是分布式系统,应用程序的配置管理变得越来越复杂。多个服务实例可能需要不同的配置,并且配置的更新需要及时、准确地推送到各个实例。Spring Boot配置中心的搭建旨在解决这些问题,实现配置的集中管理、动态更新和版本控制。本文的范围涵盖了从基础概念到实际搭建的全过程,包括配置中心的原理、算法、代码实现以及实际应用场景。核心概念与联系:介绍配置中心的基本概念、原理和架构。核心算法原理 & 具体操作步骤:讲解配置中心的核心算法,并给出具体的操作步骤。

AI开发架构师 1056

Java之SpringCloud Alibaba【三】【微服务Nacos-config配置中心】

在没有明确指定配置的情况下,默认使用的是。读取不到对应的信息克隆并设置Group又可以继续读取到对应的配置信息Spring Cloud Alibaba Nacos Config从 0.2.1版本后,可支持自定义Data ld的配置。关于这部分详细的设计可参考这里。#group:默认是Default-group - data-id : com.itblueboxmall.common2.properties refresh : true。

程序员猫爪 3354

Java Servlet 配置中心的实现与应用

本文旨在为Java开发者提供一份全面的Servlet配置中心实现指南。Servlet配置的基本原理配置中心的核心架构动态配置的实现机制与微服务生态系统的集成性能优化和最佳实践背景介绍:建立基本认知框架核心概念:深入理解配置中心原理算法实现:通过代码展示核心逻辑数学模型:量化分析配置中心性能项目实战:完整实现案例应用场景:实际业务中的使用模式工具推荐:生态系统支持未来展望:技术发展趋势Servlet:Java EE规范中用于处理HTTP请求的组件配置中心。

AI开发架构师 1160

Java面试必备:什么是配置中心?常见的配置中心有哪些?

配置中心(Configuration Center)是分布式系统中用于集中管理和动态配置应用程序配置信息的服务。它解决了传统配置管理方式(如配置文件)在分布式环境下的诸多痛点,如配置分散、变更困难、无法实时生效等问题。

qq_58299462的博客 878

探索Spring Boot在Java开发中的配置中心应用

本文旨在全面解析Spring Boot在Java开发中配置中心的应用场景和技术实现。配置中心的核心概念和价值Spring Boot与主流配置中心的集成方式分布式环境下的配置管理策略配置中心的高可用和性能优化文章将从配置中心的基本概念入手,逐步深入到Spring Boot的集成实现,最后探讨实际应用场景和最佳实践。我们采用理论结合实践的方式,确保读者既能理解原理,又能掌握实际应用技能。配置中心(Configuration Center): 集中管理应用程序配置的服务,支持动态更新和多环境配置。

Java大师兄的博客 505

CS1237卡尔曼滤波实战:如何用24位ADC实现电子秤级精度?

本文详细介绍了如何利用CS1237 24位ADC芯片结合卡尔曼滤波算法实现电子秤级精度测量。通过解析CS1237硬件特性、卡尔曼滤波原理及STM32驱动优化,提供了一套完整的解决方案,包括多通道支持、驱动代码实现和性能调优技巧,适用于工业测量和嵌入式开发领域。

linux的博客 1089

java开发-springboot项目集成配置中心

1. 概要 项目采用微服务架构,将原有的单一web项目拆分成若干个微服务;每个微服务里,都有自己的springboot配置; 微服务上线后,开始现场部署,悲剧了开始了。。。实施人员需要将20几个微服务jar包逐个解压,然后修改里面的配置信息,比如:数据库地址,redis地址,RabbitMQ地址等;如果数据库地址等有改动,还是将这20几个jar包,逐一改动;实在是不方便;开发经理强烈要求:必须优...

叭叭叭的博客 2464

Proteus一体化安装STC15库添加

Proteus一体化安装与STC15库添加指南 本文详细介绍了Proteus 8.9 SP2专业版的一体化安装流程和STC15系列单片机库文件的添加方法。安装过程简单快捷,无需破解,稳定性好。通过将两个库文件(Lib和LIB)复制到Proteus安装目录的DATA/LIBRARY文件夹中,即可实现STC15W4K32S4芯片的仿真功能。文中还提供了新建工程和器件放置的步骤说明,特别指出STC15W4K32S4芯片可兼容仿真其他STC15系列芯片,并附带下载链接获取资源。该教程适用于电子设计初学者和开发者。

#法外狂徒张三的博客 4万+

Java学习手册:配置中心

配置中心是微服务架构中用于集中管理应用配置的服务,主要功能包括统一管理配置信息、动态更新配置、版本控制和环境隔离。常用的配置中心工具有Spring Cloud Config、Apache ZooKeeper和Consul。Spring Cloud Config通过从配置存储后端加载配置信息,支持多环境配置、加密解密及配置刷新。Consul则通过简单的HTTP API进行配置管理,支持配置的写入和读取。为确保配置中心的高可用性,可以部署多个实例并使用负载均衡器,同时定期备份配置数据。合理选择和使用配置中心工具

佩奇的技术笔记 1370

HACK RF学习之旅记录1——填坑历程

在家隔离期偶尔发现RTL SDR,是realtek芯片破解了做软件无线电,价格非常实在不到百元,功能可以玩电视 广播等等。后来搜搜发现更强大的Hack RF ONE开发板,淘宝和闲鱼都看了大多都是Hack RF ONE单板999,便宜的闲鱼有600多的。还有一块扩展板是MCU+屏+时钟,看起来也很实用(非常推荐)。通过闲鱼某卖家找了渠道,从上海一家店的淘宝下单优惠价格(据说是原厂,超出想象,暗号是...

ZForce2009的博客 1万+

mysql8.0安装及配置超详细教程_mysql-8.0.15-winx64

MySQL8.0配置教程, 全网最详,同时有本地mysql和小皮系统见另一篇

小诺言的博客 2万+

Java中的配置中心设计与实现

配置中心在分布式系统中扮演着至关重要的角色,通过集中管理配置,能够有效地提高系统的可维护性和可扩展性。配置中心在分布式系统中具有重要意义,通过集中管理和动态更新配置,可以提高系统的可维护性和可扩展性。配置中心可以集中管理应用的所有配置,包括数据库连接配置、API密钥、服务地址等。在多环境(如开发、测试、生产)中,配置中心可以为每个环境提供独立的配置,确保各环境之间的隔离,避免环境之间的配置冲突。配置中心应支持配置的动态更新,即配置变更后能够实时通知到所有相关服务,避免服务重启。

微赚淘客系统开发者博客 970

【知识分享】IBIS 建模指南 04

文章详细阐述了将缓冲器数据转换为IBIS模型格式的核心步骤与规范要求。主要内容包括:1)IBIS文件三大结构(文件头信息、组件引脚映射、缓冲器行为描述)及其关键词定义;2)四种关键I-V表(上下拉、电源/地钳位)的数据处理规则,强调需避免重复计算效应;3)切换特性描述方法,指出V-T波形表优于Ramp数据的三大优势;4)差分缓冲器通过[DiffPin]关键词实现建模的特殊流程。文中特别强调数据外推校验、参考电压基准转换、工艺角数据排序等易错环节的处理技巧,为创建符合IBIS 4.0规范的精确模型提供指导。

一只豌豆象的博客 2054

Java面试必备:什么是配置中心?常见配置中心介绍?

配置中心是现代分布式系统中用于集中管理应用配置的服务组件,它解决了传统配置管理方式的诸多痛点。

qq_58299462的博客 763

这5组白月光少女三视图提示词直接用

今天分享5组治愈系白月光少女女主提示词,适合用于AI漫剧角色设计、角色库搭建和人物设定参考,所有提示词均是完整可复刻。

欢迎来到鸾姝淡月博客,专为程序员和编程爱好者打造的技术博客。我们分享编程语言趋势、开发工具、编程哲学、职业发展等,助你掌握新技术,优化技能,激发编程热情。 168

AutoSAR从0开始实战 --- 目录

​​​​​​本专栏是全网最真实的AutoSAR实战专栏,博主将从一个0基础小白的身份来讲解AutoSAR工具的配置,以及相应代码的讲解。

wj博客 1730

【Java开发300个实用技巧】170.配置中心Apollo

本文系统构建配置中心的完整知识体系:1)通过命名空间隔离和灰度发布实现配置安全管控,解决"改配置需重启"的行业痛点;2)采用三节点集群+双活数据库的高可用架构,配置推送成功率提升至99.99%;3)独创"监听器优先加载+本地缓存兜底"的双保险机制,避免应用启动依赖配置的NPE陷阱;4)设计配置变更追踪SQL和差异对比脚本,实现从配置修改到生效的全链路监控。特别强调:优秀的配置管理=30%工具选型+40%规范制定+30%监控覆盖,三者缺一不可。记住:当你的配置可以像乐高积木一样自由组合时,系统稳定性就成功了一

1086

VTK API 详解(134):vtkOBJWriter - 写入 OBJ 模型

是 VTK 中用于将数据写入 Wavefront OBJ 文件格式的类。OBJ 格式是广泛支持的 3D 网格模型格式,支持顶点、面和基本几何信息的保存,便于模型在多种三维软件间交换。

yumeiguo的博客 140

consul作为配置中心

Conusl可以作为注册中心,也可以作为配置中心。 作为配置中心,使用起来也很方便,大多数都是配置。 Consul的安装这里不说了,主要是说明java后端怎么使用,所以本次采用windows版本的consul。 引入和配置 2个文件: pom配置: <!-- consul配置中心 --> <dependency> <groupId>org.springframework.cloud</groupId> <artifac...

5125

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

配置中心 java_【配置中心】——配置中心选型

什么是配置中心不使用配置中心没有采用独立的配置中心,每次修改配置参数只能通过手动修改配置文件的方式,然后再重启重启重启,而且机器又是多台,这种方式无疑是非常低下的,而且极容易出错。何为配置中心?由IT基础框架推出的统一配置管理产品。基于该配置中心产品,您可以在DevOps、微服务等场景下极大地减轻配置管理的工作量,增强配置管理的服务能力。功能通过提供配置变更、配置推送、历史版本管理、灰度发布、配置...

weixin_42310348的博客 1296

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【动态配置中心】Java+Redis构建动态配置中心

本文介绍了一种基于Redis和Java实现的轻量级动态配置中心方案,适用于微服务架构下的配置热更新需求。文章首先分析了动态配置中心的核心价值,包括无需重启服务即可调整参数、支持灰度发布和流量切换等场景。然后详细阐述了基于Redis的方案设计,包括整体架构、核心实现机制(如注解管理和反射注入)以及完整代码实现。该方案通过复用Redis基础设施,实现了配置存储、变更通知和动态更新功能。

2302_79380280的博客 1021

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

上一篇: Java开发 - ELK初体验
下一篇: Java开发 - AOP初体验
CodingFire
CodingFire  2022年度博客之星移动开发领域TOP 5 2022年度博客之星移动开发领域TOP 5 领域专家: 移动开发技术领域 领域专家: 移动开发技术领域
博客等级 码龄11年 7927粉丝 387原创
评论 74
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodingFire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值