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來切換模式