Nacos做配置中心经常被问到的问题
加载多个配置文件怎么处理?
通过@NacosPropertySource可以注入一个配置文件,如果我们需要将配置分类存储或者某些配置需要共用,这种需求场景下,一个项目中需要加载多个配置文件,可以可以直接使用多个@NacosPropertySource注解即可。
@NacosPropertySource(dataId = "nacos-springboot", autoRefreshed = true)
@NacosPropertySource(dataId = "redis", autoRefreshed = true)
@SpringBootApplication
public class NacosSpringBootApp {
public static void main(String[] args) {
SpringApplication.run(NacosSpringBootApp.class, args);
}
}
或者@NacosPropertySources
@NacosPropertySources({
@NacosPropertySource(dataId = "nacos-springboot", autoRefreshed = true),
@NacosPropertySource(dataId = "redis", autoRefreshed = true)
})
后面我们会讲解在Spring Cloud中使用,可以直接用配置文件的方式指定多个data-id。
配置修改了如何监听?
先介绍一种比较古老的方式,太繁琐了,如下:
@NacosInjected
private ConfigService configService;
@PostConstruct
public void init() {
try {
onMessage();
} catch (NacosException e) {
e.printStackTrace();
}
}
public void onMessage() throws NacosException {
configService.addListener("nacos-springboot", "DEFAULT_GROUP", new AbstractListener() {
public void receiveConfigInfo(String config) {
System.err.println(config);
}
});
}
通过ConfigService添加一个监听器,监听具体的配置文件
下面使用注解方式来监听,既简单又方便很直接,如下:
@NacosConfigListener(dataId = "nacos-springboot")
public void onMessage(String config) {
System.out.println(config);
}
当然配置监听还支持多类型的转换,上面的示列只是简单的获取整个配置的字符串,关于更多的类型转换后面我们单独讲解。
支持多语言吗?
Nacos本身是提供Http接口的,通过接口我们可以对配置进行操作。只是目前SDK这块只支持Java,其他语言的后面会支持,只是目前还没开发,通过后台的示列代码我们可以看到有支持多语言的计划。
其他语言目前可以使用API来对接:https://nacos.io/zh-cn/docs/open-api.html
跟Apollo对比哪个更好?
对比这块大家可以根据自身的需求去做一个比对,只要符合你的需求,那对你来说这个框架就是好的。
如果说你目前已经在使用Apollo,那么我建议还是不要换,太折腾。
如果你还没使用Apollo,在对配置中心做选型,这个时候可以去做下详细的对比。从功能点,稳定性,使用,部署等方面去比较。
如果你公司内部用了dubbo的话,我觉得Nacos可以考虑用起来,这样既然替代ZK,又能增加一个配置中心的功能,可以说是比较好的方式了。
部署简单吗?
Nacos部署非常简单,可以直接下载官方编译好的包,解压改改配置文件即可启动,集群部署也是一样的,后面我们会单独讲解集群部署。
同时还支持Docker部署,熟悉Docker的朋友就方便了。
Nacos做配置中心经常被问到的问题的更多相关文章
- Nacos(四):SpringCloud项目中接入Nacos作为配置中心
前言 通过前两篇文章: Nacos(二):Nacos与OpenFeign的对接使用 Nacos(三):SpringCloud项目中接入Nacos作为注册中心 相信大家已经对Nacos作为注册中心的基本 ...
- Nacos系列:基于Nacos的配置中心
前言 在看正文之前,我想请你回顾一下自己待过的公司都是怎么管理配置的,我想应该会有以下几种方式: 1.硬编码 没有什么配置不配置的,直接写在代码里面,比如使用常量类 优势:对开发友好,开发清楚地知道代 ...
- ASP.NET Core使用Nacos作为配置中心的多环境问题
前言 双11那天离职后,这段时间都待在家里,看看书,写写代码,逛逛招聘网站 周一去Gworld面试的时候,有听到面试官说他们用到了配置中心Apollo,聊下来,听他的意思,大概是处理了多环境这个比较方 ...
- java架构之路-(微服务专题)feign的基本使用和nacos的配置中心
上次回归: 上次我们说了ribbon的基本使用,包括里面的内部算法,算法的细粒度配置,还有我们自己如何实现我们自己的算法,主要还是一些基本使用的知识,还不会使用ribbon的小伙伴可以回去看一下上一篇 ...
- Nacos作为配置中心时,多个服务共用一个dataId的配置
写在前面 本文是对我之前一篇文章<Spring Cloud+nacos+Feign,实现注册中心及配置中心>的补充.此文章中简单写了如何将Nacos作为配置中心.在使用配置中心时,我们会遇 ...
- 程序员你是如何使用Nacos作为配置中心的?
假如你使用的是spring-cloud-alibaba微服务技术栈 单个服务独有配置文件 即去除应用程序的状态,配置统一外部化管理,方便进行水平的伸缩. 集成步骤: 假如我有一个应用app-desig ...
- .net5+nacos+ocelot 配置中心和服务发现实现
最近一段时间 因公司业务需要,需要使用.net5做一套微服务的接口,使用nacos 做注册中心和配置中心,ocelot做网关. 因为ocelot 支持的是consol和eureka,如果使用nacos ...
- 每天学点SpringCloud(八):使用Apollo做配置中心
由于Apollo支持的图形化界面相对于我们更加的友好,所以此次我们使用Apollo来做配置中心 本篇文章实现了使用Apollo配置了dev和fat两个环境下的属性配置.Apollo官方文档https: ...
- 使用Apollo做配置中心
https://blog.51cto.com/12980017/2158490?source=dra 由于Apollo支持的图形化界面相对于我们更加的友好,所以此次我们使用Apollo来做配置中心 本 ...
随机推荐
- icon图标深入指南
图标是网络上常用的元素. 它们是通用的,可以立即识别,可以非常吸引人,引起注意,并且(如果使用正确)可以提供出色的用户体验. 在网络上实现图标时,我们有很多选择: Icon Spritesheet – ...
- 使用 Flutter 开发 Mac 桌面应用
Flutter 可以开发 Mac,Linux,Windows 桌面,但是对于平台目前只能打对于的包,以及调试本平台的包. 切换到 master 分支 首先必须切换到 master 分支.我之前在 de ...
- Android8.1 源码修改之插入SIM卡默认启用Volte功能
前言 公用电话产品,插入SIM卡后要求自动打开Volte功能,即插即用,用完拔卡就走 实现 第一步 开关对应的代码 通过打印日志和全局查找,源码位置 vendor/mediatek/proprieta ...
- python 基础学习笔记(8)--装饰器
**装饰器** - [ ] 装饰器和闭包有很大的联系.有时你需要在不改变源代码的情况下修改已经存在的函数.装饰器的运用可以提高效率,减少重复的代码. - [ ] 装饰器的实质是一个函数.它把一个函数作 ...
- [Go] 利用函数类型实现封装中的回调
当进行业务逻辑开发的时候,经常要进行封装,封装成独立的类文件,在类文件的属性中预留出函数类型的API 在调用该类文件中某些方法的时候,也根据业务需要调用类属性中的函数, 在主业务中可以传递特定的函数注 ...
- NFS挂载遇到的问题
问题描述:生产环境中需要经常运用NFS挂载,就在测试环境中测试一下,将服务器中192.168.1.4 /u01/app/oracle/product/11.2.0/dbhome_1/dbs 挂载到1 ...
- SSM案例整合踩的一些坑
一.出现错误:Cannot convert value of type [java.lang.String] to required type [javax.sql.DataSource] for p ...
- Java面试准备基础篇_11.24
Java类加载机制 Java内存模型JMM 为什么 Redis 单线程能支撑高并发? 高并发下的接口幂等性解决方案! 面试官问:平常你是怎么对 Java 服务进行调优的? JAVA虚拟机(JVM)六: ...
- Docker和ASP.NET Core
Docker和ASP.NET Core Docker 正在逐渐成为容器行业的事实标准,受到 Windows 和 Linux 生态系统领域最重要供应商的支持. (Microsoft 是支持 Docker ...
- go语言的json
简介 json 中提供的处理 json 的标准包是 encoding/json,主要使用的是以下两个方法: // 序列化 func Marshal(v interface{}) ([]byte, er ...