nacos的一些api和监听器用法

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第8天,点击查看活动详情

很多时候,我们再使用SpringCloud的微服务体系的时候,注册和配置中心,大多数的人,一般都是会选择nacos!!!

因为nacos,集成了配置中心和注册中心的功能。

不然按照以前的做法,一般是用eureka(注册中心)+SpringCloud Config(配置中心)+Spring Cloud Bus(配置动态刷新)!!!

这样,咱们的学习成本,就会很高了!

nacos官方,就很聪明了,我给你整一起了,用我吧,学一个框架,就行了!!!

哥们反手给你个么么哒!!!T_T

image.png

1. nacos的高级用法

  • 配置中心
@Component
@RefreshScope  //自动刷新配置
public class Test{
    @Value(value="${demo.text}")
    private String demoText;
}
复制代码

image.png

这样,我们就可以获取到nacos的配置,并动态刷新配置

  • 一些高级用法

一般我们都是通过nacos提供的可视化界面,去新增修改配置文件。

一般情况下,nacos的可视化界面,在正式环境下,一般是不允许暴露出去的。

不然,就会存在重大漏洞!!!_

所以这里,我们可以通过nacos提供的api的方式进行操作nacos的配置:

例如下面:

@Autowired
private ConfigService configService;
​
//发布配置
configService.publishConfig("配置名称dataId", "配置分组group", "#配置内容");
​
//删除配置
configService.removeConfig("配置名称dataId", "配置分组group")
​
//获取配置
String content = configService.getConfig("配置名称dataId", "配置分组group", 0)
复制代码
  • 监听机制

nacos还提供了一些监听机制,我们可以通过监听到某个配置的变化,然后去处理我们的业务逻辑:

例如下面:

@Autowired
private ConfigService configService;
​
//添加监听器,监听配置名称dataId,配置的变化
configService.addListener("配置名称dataId", "配置分组group", new Listener() {
    @Override
    public Executor getExecutor() {
        return null;
    }
​
    @Override
    public void receiveConfigInfo(String config) {
        try {
            //这里的config为最新的配置
            
            //处理我们的业务逻辑
            ....
            
            log.debug("nacos properties reload");
        } catch (Exception ex) {
            log.error("receiveConfigInfo", ex);
        }
    }
});
复制代码
  • 注册中心
@Autowired
private DiscoveryClient discoveryClient;
​
//获取注册nacos上面的所有微服务名称
List<String> list = discoveryClient.getServices();
​
​
//获取注册nacos上面的所有微服务实例
List<ServiceInstance> list = discoveryClient.getInstances();
复制代码

当然啦,nacos,还是有很多高阶的用法的,这里就先分享这些先,下次有机会再分享了。

好了,今天就先到这里了,溜了溜了溜了!!!^_^

觉得有收获的,帮忙点赞、评论、收藏一下呗!!!

image.png

猜你喜欢

转载自juejin.im/post/7104246706207719455