Spring Cloud之Nacos注册中心及配置中心

Nacos 是阿里巴巴新推出的开源项目,是一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。是 注册中心 + 配置中心 的组合。

Nacos官方文档:什么是 Nacos

安装包下载地址Releases · alibaba/nacos · GitHub

等价于: Nacos = Eureka + Config

 

1. Nacos注册中心

1.1 注册中心的意义:

注册中心解决了服务发现的问题。在没有注册中心时候,服务间调用需要知道被调方的地址或者代理地址。当服务更换部署地址,就需要修改调用当中指定的地址或者修改代理配置。而有了注册中心之后,每个服务在调用时候只需要知道服务名称,地址都会通过注册中心同步过来。

目前市面上的注册中心:
1)Eureka(原生,2.0遇到瓶颈,停止维护)
2)Zookeeper(支持,专业的独立产品。例如:dubbo)
3)Consul(原生,GO语言开发)
4)Nacos(阿里巴巴)

Nacos 的特性:
服务发现和服务健康监测:支持基于DNS和基于RPC的服务发现,支持对服务的实时的健康检查,阻止向不健康的主机或服务实例发送请求;
动态配置服务:动态配置服务可以让您以中心化、外部化和动态化的方式管理所有环境的应用配置和服务配置;
动态 DNS 服务:动态 DNS 服务支持权重路由,让您更容易地实现中间层负载均衡、更灵活的路由策略、流量控制以及数据中心内网的简单DNS解析服务;
服务及其元数据管理:支持从微服务平台建设的视角管理数据中心的所有服务及元数据。

1.2 常用的注册中心

对比NacosEurekaConsulZookeeper
一致性协议支持AP和CP模型AP模型CP模型CP模型
健康检查TCP/HTTP/MYSQL/Client BeatClient BeatTCP/HTTP/gRPC/CmdKeep Alive
负载均衡策略权重/metadata/SelectorRibbonFabio-
雪崩保护
自动注销实例支持支持不支持支持
访问协议HTTP/DNSHTTPHTTP/DNSTCP
监听支持支持支持支持支持
多数据中心支持支持支持不支持
跨注册中心同步支持不支持支持不支持
SpringCloud集成支持支持支持不支持
Dubbo集成支持不支持不支持支持
k8s集成支持不支持支持不支持

目前常用的注册中心是Nacos和eureka

1.3 Nacos与eureka的区别:

共同点:
都支持服务注册和服务拉取。
都支持服务提供者心跳的方式做健康检测。
不同点:
nacos支持服务端主动检测提供者状态:临时实例采用心跳模式,非临时实例采用主动检测模式(一般情况下都使用临时实例,主动检测消费的服务器资源较大,服务器压力大)。
临时实例心跳不正常会被剔除,非临时实例则不会被剔除。
nacos支持服务列表变更的消息推送模式,服务列表更新及时。
nacos集群默认采用AP方式,当集群中存在非临时实例时,采用CP模式;eureka采用AP方式。(经过配置 spring.cloud.nacos.discovery.ephemeral=true  #false为永久实例,true表示临时实例开启,注册为临时实例,默认是true)

2. Nacos配置中心

2.1. 什么是配置中心

系统从一个单体应用,被拆分成分布式系统上一个个服务节点后,配置文件也必须跟着迁移(分割),这样配置就分散了,分散中还包含着冗余。对于在微服务时代,会有大量的重复实例,所以配置中心就诞生了。配置中心解决了在分布式场景下多环境配置文件的管理和维护。

2.2. 理解配置中心

1. 用户在配置中心更新配置信息。
2. 服务A和服务B、C等及时得到配置更新通知,从配置中心获取配置。

2.3. Nacos配置注意事项

1)Nacos配置文件名:bootstrap.yml

配置文件加载的优先级(由高到低)

bootstrap.properties ->bootstrap.yml -> application.properties -> application.yml

2)动态刷新配置类信息

方式一:读取某个属性使用@Value注解,并在对应的配置类上添加@RefreshScope

@RefreshScope  //刷新配置注解
public class Config {

    @Value("${config.age}")
    private String age;

}

方式二:直接使用@ConfigurationProperties 读取配置

@ConfigurationProperties(prefix = "config")
public class Config {
    private String age;

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值