加载多个配置文件怎么处理?

通过@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做配置中心经常被问到的问题的更多相关文章

  1. Nacos(四):SpringCloud项目中接入Nacos作为配置中心

    前言 通过前两篇文章: Nacos(二):Nacos与OpenFeign的对接使用 Nacos(三):SpringCloud项目中接入Nacos作为注册中心 相信大家已经对Nacos作为注册中心的基本 ...

  2. Nacos系列:基于Nacos的配置中心

    前言 在看正文之前,我想请你回顾一下自己待过的公司都是怎么管理配置的,我想应该会有以下几种方式: 1.硬编码 没有什么配置不配置的,直接写在代码里面,比如使用常量类 优势:对开发友好,开发清楚地知道代 ...

  3. ASP.NET Core使用Nacos作为配置中心的多环境问题

    前言 双11那天离职后,这段时间都待在家里,看看书,写写代码,逛逛招聘网站 周一去Gworld面试的时候,有听到面试官说他们用到了配置中心Apollo,聊下来,听他的意思,大概是处理了多环境这个比较方 ...

  4. java架构之路-(微服务专题)feign的基本使用和nacos的配置中心

    上次回归: 上次我们说了ribbon的基本使用,包括里面的内部算法,算法的细粒度配置,还有我们自己如何实现我们自己的算法,主要还是一些基本使用的知识,还不会使用ribbon的小伙伴可以回去看一下上一篇 ...

  5. Nacos作为配置中心时,多个服务共用一个dataId的配置

    写在前面 本文是对我之前一篇文章<Spring Cloud+nacos+Feign,实现注册中心及配置中心>的补充.此文章中简单写了如何将Nacos作为配置中心.在使用配置中心时,我们会遇 ...

  6. 程序员你是如何使用Nacos作为配置中心的?

    假如你使用的是spring-cloud-alibaba微服务技术栈 单个服务独有配置文件 即去除应用程序的状态,配置统一外部化管理,方便进行水平的伸缩. 集成步骤: 假如我有一个应用app-desig ...

  7. .net5+nacos+ocelot 配置中心和服务发现实现

    最近一段时间 因公司业务需要,需要使用.net5做一套微服务的接口,使用nacos 做注册中心和配置中心,ocelot做网关. 因为ocelot 支持的是consol和eureka,如果使用nacos ...

  8. 每天学点SpringCloud(八):使用Apollo做配置中心

    由于Apollo支持的图形化界面相对于我们更加的友好,所以此次我们使用Apollo来做配置中心 本篇文章实现了使用Apollo配置了dev和fat两个环境下的属性配置.Apollo官方文档https: ...

  9. 使用Apollo做配置中心

    https://blog.51cto.com/12980017/2158490?source=dra 由于Apollo支持的图形化界面相对于我们更加的友好,所以此次我们使用Apollo来做配置中心 本 ...

随机推荐

  1. 大疆无人机 Android 开发总结——视频解码

    DJI_Mobile_SDK是大疆为开发者提供的开发无人机应用的开发接口,可以实现对无人机飞行的控制,也可以利用无人机相机完成一些视觉任务.目前网上的开发教程主要集中于DJI 开发者社区,网上的资源非 ...

  2. 字典 dict方法

    字典 student = {'sId': '1101', 'sName': '张三', 'sClass': '软件测试', 'sColl': '信息技术学院'} # 根据键查询 若不存在会报错 pri ...

  3. 常用注解解析(因为不太明白@component和@configuration写了)

    1.@controller 控制器(注入服务) 用于标注控制层,相当于struts中的action层 2.@service 服务(注入dao) 用于标注服务层,主要用来进行业务的逻辑处理 3.@rep ...

  4. 给OPi Zero Plus添加USB启动功能

    为使OPi Zero Plus支持U盘启动,需要在板载的SPI Flash当中刷入uboot.在这个过程当中绕了很多弯路,特此记录 最终操作步骤见文末 网上的教程仅使用sudo modprobe sp ...

  5. C++入门到理解阶段二基础篇(7)——C++函数

    目录 函数作用 函数定义 函数声明 函数调用 函数值传递 函数常见的样式 函数的分文件书写 函数作用 将经常使用的代码封装起来,减少重复代码 函数定义 C++ 中的函数定义的一般形式如下: retur ...

  6. 【问题记录】 Linux分区磁盘占满,导致ssh登陆闪退

    问题描述 今天要去后台看日志查个问题,通过ssh登陆到服务器后准备用平时非常熟悉的less命令打开日志查看,突然xshell客户端就闪退了.一时感觉很蒙,怎么回事??由于之前有同事遇到类似的问题,提醒 ...

  7. Concepts & Implementation of PLs

    http://perugini.cps.udayton.edu/teaching/courses/Spring2015/cps352/index.html#lecturenotes Programmi ...

  8. Docker安装ELK

    1.下载elk docker pull sebp/elk 2.启动elk //Elasticsearch至少需要单独2G的内存 //增加了一个volume绑定,以免重启container以后ES的数据 ...

  9. Git错误:error:failed to push some refs to 'git@gitee.com:name/project.git'

    大家在通过本地仓库上传文件到远程仓库时,会报出 error:failed to push some refs to 'git@gitee.com:name/project.git' 的错误. 解决方法 ...

  10. OAuth2、OpenID Connect简介

    当我们在登录一些网站的时候,需要第三方的登录.比如,现在我们要登录简书https://www.jianshu.com/sign_in,我们使用微博登录,点击下方的一个微博的小按钮,就会出现这么一个地址 ...