zoukankan      html  css  js  c++  java
  • 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的朋友就方便了。

    猿天地

  • 相关阅读:
    吴裕雄--天生自然 诗经:临江仙·滚滚长江东逝水
    吴裕雄--天生自然 PYTHON3开发学习:正则表达式
    吴裕雄--天生自然 PYTHON3开发学习:面向对象
    吴裕雄--天生自然 PYTHON3开发学习:OS 文件/目录方法
    吴裕雄--天生自然 PYTHON3开发学习:File(文件) 方法
    吴裕雄--天生自然 PYTHON3开发学习:输入和输出
    吴裕雄--天生自然 PYTHON3开发学习:函数
    吴裕雄--天生自然 PYTHON3开发学习:迭代器与生成器
    吴裕雄--天生自然 PYTHON3开发学习:循环语句
    吴裕雄--天生自然 PYTHON3开发学习:条件控制
  • 原文地址:https://www.cnblogs.com/yinjihuan/p/11229227.html
Copyright © 2011-2022 走看看