是时候了解下 nacos 了!(二)

简介: 是时候了解下 nacos 了!(二)

命名空间和分组


命名空间和分组相当于一个配置文件的"年级和班次",在同一个 group 下,配置文件名不能重复,所以当需要创建文件名称相同的两个配置文件时,将两个配置文件创建在不同的 group 下即可。而 namespace 范围比 group 大,目的是一样的。

定义命名空间方式如图

在bootstrap中对应配置


spring.cloud.nacos.config.namespace=命名空间ID

分组则在配置中心新建配置的时候可指定,在bootstrap中对应配置


spring.cloud.nacos.config.group=group


配置自动更新


通过 Spring Cloud 原生注解 @RefreshScope 实现配置自动更新,示例:

@Service
@RefreshScope
public class ConfigController {
    @Value("${config.test}")
    private String test;
    public void testStr(){
        System.out.print(test)
    }
}

当你在配置中心更新 config.test 的 客户端的 test 的值也会刷新,并且你还能在客户端看到值变更的相关日志。


小结


别的不说,这比 Spring Cloud Config 好用太多了有木有! 和 apollo 比起来配置太容易了有木有!这么好用的东西,出正式版了,等坑都排完了妥妥的神器有木有!我选 nacos ,你呢?


作为注册中心


刚才是作为配置中心,接下来再来看看 nacos 作注册中心。


介绍


服务治理是微服务架构中最为核心和基础的模块。它主要用来实现各个微服务实例的自动化注册与发现。随着服务的越来越多,越来越杂,服务之间的调用会越来越复杂,越来越难以管理。而当某个服务发生了变化,或者由于压力性能问题,多部署了几台服务,怎么让服务的消费者知晓变化,就显得很重要了。不然就会存在调用的服务其实已经下线了,但调用者不知道等异常情况。这个时候有个服务组件去统一治理就相当重要了。注册中心便是做这个事情的,我们的服务上下线和发现服务都要依赖于注册中心。

nacos 注册中心有哪些特性呢?首先 nacos 从 cap 的角度来说,它能针对不同模式采用 cp 还是 ap 原则。然后它对服务发现的支持种类也有很多,比如:gRpc、Dubbo RpcService、Spring Cloud RESTful Service 。并且 nacos 本身提供了很直观的注册中心管理界面。方便我们查看管理服务,其 api 也很丰富,我们完全可以在做二次开发去写一个我们自己满意的管理页面。Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。Nacos 支持传输层 (PING 或 TCP)和应用层 (如 HTTP、MySQL、用户自定义)的健康检查。


示例


新建一个 Spring Boot 项目,添加如下依赖:


<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    <version>0.9.0.RELEASE</version>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter</artifactId>
    <version>2.1.1.RELEASE</version>
</dependency>

在启动类上加上 @EnableDiscoveryClient 注解

@SpringBootApplication
@EnableDiscoveryClient
public class MytestApplication {
    public static void main(String[] args) {
        SpringApplication.run(MytestApplication.class, args);
    }
}

application添加配置:


server.port=8081
spring.application.name=service-mytest
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848


启动服务后,我们能看到nacos管理页面注册上了一个服务。点击查看详情:


列表上有一列是临时实例,临时实例通常使用 AP 一致性,因此如果发生网络分区,注册临时实例仍然有效。持久化实例使用 CP 一致性,这保证了数据的一致性。而持久化配置则是配置集群和数据库,本文不做介绍。后期搭建集群的时候我们在做测试。权重则是指调用服务时路由到该实例的优先系数,数字越大优先级越高,为0则不会使用该实例。


总结


我们能用 nacos 作为配置中心或者注册中心,其本身提供管理界面也很方便。nacos 的使用企业也很多,下面放出一张 github 上 nacos 的使用企业截图:

官方文档还有提到 nacos 支持动态 DNS,也就是说支持 DNS 的负载均衡,但本人没找到很好的资料,后续再做研究。关于 nacos 集群和持久化配置搭建后续更新,感谢阅读。


相关文章
|
6月前
|
Nacos
|
存储 关系型数据库 MySQL
Nacos 2.0.3和Nacos 2.2.3版本
Nacos 2.0.3和Nacos 2.2.3版本
843 1
|
4天前
|
监控 网络协议 Nacos
介绍一下Nacos
介绍一下Nacos
|
1月前
|
网络协议 Java Nacos
Nacos的应用
Nacos的应用
47 0
|
5月前
|
SQL 关系型数据库 MySQL
详解nacos使用
详解nacos使用
116 0
|
负载均衡 前端开发 网络协议
是时候了解下 nacos 了!(一)
是时候了解下 nacos 了!(一)
|
Nacos
Nacos 配置文件属性说明
Nacos 配置文件属性说明
211 0
|
6月前
|
Nacos
Nacos的某些配置
Nacos的某些配置
71 2
|
存储 运维 网络安全
Nacos使用总结
Nacos使用总结
204 0
|
存储 负载均衡 Java
Nacos
Nacos
633 0