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
下载地址: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来切换模式