Nacos介绍和使用

一、简介:

        介绍:Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。

功能:

1)服务发现: 支持 DNS 与 RPC 服务发现,也提供原生 SDK 、OpenAPI 等多种服务注册方式和 DNS、HTTP 与 API 等多种服务发现方式。

2)服务健康监测: Nacos 提供对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求。

3)动态配置服务: Nacos 提供配置统一管理功能,能够帮助我们将配置以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置。

4)动态 DNS 服务: Nacos 支持动态 DNS 服务权重路由,能够让我们很容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单 DNS 解析服务。

5)服务及其元数据管理: Nacos 支持从微服务平台建设的视角管理数据中心的所有服务及元数据,包括管理服务的描述、生命周期、服务的静态依赖分析、服务的健康状态、服务的流量管理、路由及安全策略、服务的 SLA 以及最首要的 metrics 统计数据。

二、Nacos的安装

        

三、Nacos作为注册中心使用

Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说,并没有太大区别。

1、引入依赖

1)在父工程中引入SpringCloudAlibaba依赖

<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-alibaba-dependencies</artifactId>
    <version>2.2.6.RELEASE</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

2)在子工程引入Nacos依赖


<dependency>
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>

PS:Nacos与Eureka存在一定的冲突,注意不要混用

2、配置文件中配置Nacos的地址

spring:
  cloud:
    nacos:
      server-addr: localhost:8848

3、启动服务即可登录Nacos页面,查询当前注册的服务

四、Nacos实现服务分级存储模型

1、分级存储模型

在大型的服务架构中基本都存在分级存储,例如:TX、AL、JD他们的应用的并发访问量都是海量级别的,那么我们在使用过程中也没有感觉到卡顿,这其中涉及到的资源也是巨量的,这时候就应用了分级存储,对于这些应用范围广泛,并发访问高的应用通常都会在全国各地设置独立的服务器,各地区的访问都由本地的服务器进行统一处理,在本地服务器出现异常的时候再通过异地的服务器提供服务,这样有效的减低了服务异常的风险。

架构图:

2、Nacos实现分级存储的实现步骤

1)先搭建服务集群:

在服务的调用者和提供者的配置文件中都添加集群配置,设置集群名称“HZ”

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
      discovery:
        cluster-name: HZ # 集群名称

配置文件详情:

2)修改负载均衡规则,配置同集群内优先访问

其中userservice是需要访问的服务名,ribbon是负载均衡组件, NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule是负载规则

userservice:
  ribbon:
    NFLoadBalancerRuleClassName: com.alibaba.cloud.nacos.ribbon.NacosRule # 负载均衡规则 

五、Nacos实现服务权重配置

在集群服务中,每个服务器或者容器可能会存在性能差异,此时采用负载均衡的默认轮询策略会导致性能好的服务器性能远不到瓶颈,性能差的服务器已经超负荷运行了,我们希望性能好的服务器能承载更多的访问请求,Nacos提供了实例的权重配置功能,可以有效解决此类问题。

1、打开实列的编辑页面

2、设置当前实例所需承载的资源的权重,注意权重最大为1(百分比),设置为0时该实例不提供服务

六、环境隔离功能

在项目开发过程中,会涉及到多个环境的切换,例如开发环境,测试环境,生产环境等,Nacos提供了完善的环境隔离功能

1、在Nacos中新建命名空间

2、在服务的配置文件配置服务的namespace属性,属性值为命名空间的id

七、Nacos作为配置中心使用

Nacos除了注册中心之外还可以作为配置中心来使用

1、统一配置管理

在微服务架构中,当部署的实例越来越多的时候,每个微服务的配置文件就是十分头疼的事情,这时候就引入了统一配置管理,将所有的配置文件通过Nacos来管理,各个微服务来引用,相同实例的可以引用相同的配置文件

2、统一管理实现步骤

2.1、在Nacos管理页面中新建配置文件

PS:一般需要经常变动的配置,可以通过配置中心来管理,不需要修改的配置最好还是放在微服务本地

2.2、从Nacos获取配置文件

将配置文件放置在配置中心后,相关的配置就全都没有了,开发人员如何去引入配置文件到本地程序中呢?Spring提供了一种新的配置文件bootstrap.yaml文件,它可以在常规的配置文件前载入,可以通过配置它来从Nacos中获取配置文件

1)引入nacos-config依赖

<!--nacos配置管理依赖--> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency>

2)添加bootstrap.yaml配置文件,并配置

此时配置就完成了,后续程序会根据: 服务名称:环境:后缀 这个规则去Nacos配置中心中拉取相应的配置文件

2.3、Nacos配置中心的热更新配置

Nacos作为配置中心是支持热更新的,即修改配置文件,不需要重新启动程序即可生效

此处配置十分简单,是基于引用配置文件的两种注解来实现,程序中通常使用@Value引入单个配置或@ConfigurationProperties来引入配置文件中的内容,其中@ConfigurationProperties注解支持Nacos的热配置,无需进行任何操作,而对于使用@Value注解的属性,需要手动在其所在类上添加@RefreshScope即可开启热更新

2.4、配置共享

在开发过程中,开发人员涉及到很多不同的环境,例如开发环境,测试环境,生产环境等,而这些环境所需要的配置文件会有相同的配置,为了简化这部分的重复配置,Nacos配置中心也具备配置共享的功能。

在前面内容中提到程序从Nacos配置中心是通过 服务名称:环境:后缀 这种方式来获取对应的配置文件的,不同环境的配置文件只需要修改环境这个值就可以了(前提是Nacos存在对应配置)。程序除了通过这种方式来获取配置文件外,默认还有一种 服务名称:后缀就是不带环境参数,如果Nacos存在这样命名的配置文件,则服务名称的程序就会读取同一份配置文件,这样就实现了配置共享

PS:配置文件的优先级:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Nacos可以作为配置中心使用,它是一种主流的配置中心解决方案之一。作为配置中心,Nacos可以用于管理和动态更新应用程序的配置信息。为什么需要使用配置中心呢?因为在微服务架构中,应用程序的配置信息可能分散在不同的地方,如果需要修改配置,就需要修改多个地方的配置文件,非常不便捷。而使用配置中心可以集中管理和动态更新配置信息,使得配置的修改和更新更加方便。 在使用Nacos作为配置中心时,可以通过Spring Boot来进行整合。通过在应用程序中引入Nacos的相关依赖,配置Nacos的连接信息,就可以通过Nacos来管理应用程序的配置了。 配置的动态刷新是配置中心最核心的功能之一。当需要修改配置时,可以直接在Nacos中修改配置,然后配置中心会自动将修改的配置信息推送给应用程序,使得配置的更新可以实时生效。例如,如果需要修改配置项user.name的值,可以直接在Nacos中修改为"zhangsan",然后配置中心会将新的配置更新到应用程序中,使得应用程序获取到最新的配置信息。这样,就避免了重启应用程序来使配置生效的操作。 因此,使用Nacos作为配置中心可以方便地管理和更新应用程序的配置信息,并且实现配置的动态刷新。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Nacos配置中心用法详细介绍](https://blog.csdn.net/a745233700/article/details/122916208)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值