java中Nacos的使用

需要引入依赖

		<dependency>
            <groupId>com.alibaba.nacos</groupId>
            <artifactId>nacos-client</artifactId>
        </dependency>

然后添加nacos类对指定地址的开关进行监听,其中group和dataId分别对应nacos中的对应内容
在这里插入图片描述


@Component
public class NacosUtil {
    public static Integer testButton;

	//是否启用nacos,在配置文件中配置
    @Value("${nacos.button}")
    private String nacosButton;

    @PostConstruct
    public void initNacos(){
        if (Long.valueOf(nacosButton).equals(1L)) {
            logger.biz("[nacos]:nacosbutton equals 1L");
            //指定连接到的服务器地址,可以是本地也可以是其他服务器
            String serverAddr = "";
            //自己指定的组
            String group = "test-group";

            // 示例
            try {
            	//自己指定的dataId
                String dataId = "test-dataId";
				
				//从nacos中获取的开关服务
                ConfigService configService = getConfigService(serverAddr);

				//本方法启动的时候获取内容
                String content = configService.getConfig(dataId, group, 5000);
                logger.biz("content:" + content);
				
                JSONObject object = JSONObject.parseObject(content);
                button = object.getString("test-button");

                if("1".equals(button)){
                    Constants.TEST_BUTTON = 1;
                } else {
                    Constants.TEST_BUTTON = 0;
                }

				//监听器,一旦nacos中相应值改变,则进行相应开关状态改变
                configService.addListener(dataId, group, new Listener() {
                    @Override
                    public void receiveConfigInfo(String configInfo) {
                        logger.biz("[Listener]:" + configInfo);

                        JSONObject object = JSONObject.parseObject(configInfo);
                        button = object.getInteger("test-button");
                        if("1".equals(button)){
                            Constants.TEST_BUTTON = 1;
                        } else {
                            Constants.TEST_BUTTON = 0;
                        }
                    }

                    @Override
                    public Executor getExecutor() {
                        return null;
                    }
                });
            } catch (NacosException e) {
                logger.error("获取功能开关配置失败:" + e, e.getMessage());
            }
        }

    }

	/**
     * 根据地址获取ConfigService
     *
     * @param serverAddr 地址
     * @return 返回获取到的ConfigService
     * @throws NacosException 抛出异常
     */
    private ConfigService getConfigService(String serverAddr) throws NacosException {
        Properties properties = new Properties();
        properties.put("serverAddr", serverAddr);
        return NacosFactory.createConfigService(properties);
    }

版权声明:本文为zoelee_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。