Nacos注册中心和配置中心

简介

Nacos 是 Alibaba 开发的用于微服务管理的平台,核心功能:服务注册与发现和集中配置管理。

Nacos: Naming 与 Configuration 的前两个字母的组合,最后的 s 代表 service 。从其命名也能看出其核心功能。

  • - Nacos 作为服务注册发现组件,可以替换Spring Cloud 应用中传统的服务注册与发现组件,如:Eureka、Consul 等,支持服务的健康检查。
  • Nacos 作为服务配置中心,可以替换 Spring Cloud Config、Apollo(阿波罗的分布式配置中心) 等。

注册中心

虽然 Eureka Server 会被 Nacos 替换掉,但是我们仍可使用 Ribbon、OpenFeign 作为远程调用的基础组件。

微服务整合 nacos 服务发现:

  • spring-cloud-starter-alibaba-nacos-discovery 是 spring-cloud-alibaba-dependencies 子项目。所以它们的版本号都不需要我们手动维护,继承自父项目 dependencyManagement 中的定义。

  • spring-cloud-starter-alibaba-nacos-discovery 也默认包含了 spring-cloud-starter-netflix-ribbon ,不需要单独引入 ribbon 。 ribbion 和 openfeign 相关的负载均衡、远程服务调用组件在 nacos 下依然适用。

  • 文件配置

  • application.yml
spring:
  application:
    name: spring-provider
  cloud:
    nacos:
      discovery:
        server-addr: 127.0.0.1:8848
        namespace: public
        username: nacos
        password: nacos

pom文件

<dependency> <!-- 自动引入 Ribbon -->
    <groupId>com.alibaba.cloud</groupId>
    <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency> 
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

SpringBoot启动类加上 @EnableDiscoveryClient 注解,开启 Spring Cloud 的服务注册与发现功能。spring cloud alibaba 遵守 spring cloud 规范,因此 @EnableDiscoveryClient 注解能激活、启用 nacos 的服务发现功能。(新java版本可不加)

微服务 group 分组

Nacos 的微服务分组概念,有两层含义:

  • 不同分组的微服务,彼此之间不能发现对方,也就不能进行远程服务调用。逻辑上,不同的分组意味着这是两个不同的独立项目。即微服务从配置中拉取到的注册表是微服务所在组的注册表。

  • 将微服务分组,方便我们查看,以及方便配置管理分类。

默认分组是 default_group

spring:
  cloud:
    nacos:
      discovery: 
        group: public_group

配置中心

Nacos 作为配置管理中心,实现的核心功能就是配置的统一管理。

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

连接配置中心的配置信息『必须』写在 bootstrap.yml 配置文件中,而不是 application 配置文件中。bootstrap 优先级高于apllication。

如果想要实现动态刷新功能,那么在 @Value 所在的 @Component(@Controller、@Service、@Repository)上加上 @RefreshScope 即可实现动态刷新。

服务注册与发现的原理

原理

Nacos服务注册中心在服务注册时会维护服务实例的信息,例如IP地址、端口号、服务名等,并把这些信息存储在Nacos中。服务消费方在需要调用服务时,可以向Nacos请求服务的实例信息。Nacos在收到服务消费方的请求后,会从服务注册中心中查询可用的服务实例,并返回给服务消费方。

心跳机制

临时实例每5s向nacos注册中心发一个心跳包,nacos注册中心连续15s收不到心跳包,就认为服务不健康,如果再过15s还没有收到,如果是临时实例就会剔除掉服务。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值