SpringCloud Alibaba之Nacos服务注册和配置中心简介

为什么叫Nacos?

前面四个字母分别表示 Naming 和 Configuration 的前两个字母, 最后一个s 为 Service,所以取名为Nacos

Nacos是什么?

  • 一个更易于构建云原生运用的动态服务发现、配置管理和服务管理平台
  • Nacos: Dynamic Naming and Configuration Service
  • Nacos 就是 注册中心+ 配置中心 等价于 Nacos  = Eureka + Config + Bus 

Nacos能做什么?

  • 替代Eureka做服务注册中心
  • 替代Config做服务配置中心

Nacos去哪儿下?

官方文档:https://nacos.io/zh-cn/index.html

github地址:https://spring-cloud-alibaba-group.github.io/github-pages/greenwich/spring-cloud-alibaba.html#_spring_cloud_alibaba_nacos_discovery

下载地址:https://github.com/alibaba/nacos/releases/tag/1.2.1

在这里面选择版本下载,有tar.gz提供给linux,zip提供给windows版,Tags可以切换版本

各种注册中心对比如下:

据说Nacos在阿里巴巴内部有超过10万的实例运行,已经过了类似双十一等各种大型流量的考验

Nacos其实支持 AP和CP

 

Nacos是可以切换 CP 和 AP 模式的:

C是所有节点在同一时间看到的数据是一致的; 而A的定义是所有的请求都会收到响应。
何时选择使用何种模式?
一般来说,如果不需要存储服务级别的信息且服务实例是通过nacos一 client注册,并能够保持心跳上报,那么就可以选择AP模式。当前主流的服务如Spring cloud和Dubbo服务,都适用于AP模式,AP模式为了服务的可能性而减弱了一致性,因此AP模式下只支持注册临时实例。
如果需要在服务级别编辑或者存储配置信息,那么CP是必须,K8S服务和DNS服务则适用于CP模式。
CP模式下则支持注册持久化实例,此时则是以Raft协议为集群运行模式,该模式**册实例之前必须先注册服务,如果服务不存在,则会返回错误。


curl 一X PUT '$NACOS_ SERVER:8848/nacos/v1/ns/operator/switches?entry=serverMode&value=CP'

通过上述curl来切换模式