文章目錄
環境準備
安裝Nacos需要Java和Maven環境,如果未安裝可以參考:
Centos安裝配置Java環境
Centos7安裝Maven3.6.x
下載Nacos穩定發佈包
運行命令wget https://github.com/alibaba/nacos/releases/download/1.2.1/nacos-server-1.2.1.tar.gz
解壓運行Nacos包
運行命令tar -zxvf nacos-server-1.2.1.tar.gz
進入解壓目錄 cd nacos-server-1.2.1
編輯配置 vim conf/application.properties
一般默認配置就夠用了,如果有特殊需求可參考配置列表進行自定義配置
運行 Nacos bin/startup.sh -m standalone
這裏是以單機模式運行的命令,如果要配置集羣需要編輯conf/cluster.conf 文件,並且需要在每個Nacos實例內conf/application.properties 配置數據庫連接信息
啓動完畢訪問http://ip:8848/nacos
默認賬號密碼都是nacos
配置Nacos多環境
Nacos提供了命名空間(namespace)供我們用來做不同的環境之間隔離和切換管理,Group 來做不同項目的之間的服務與配置隔離、管理(Group需要在具體開發的服務上進行配置GroupId)
自定義開發、測試、生產環境:登錄到Nacos控制檯,點擊命名空間。新建命名空間,我這裏按照平常開發的習慣分成了三個環境分別是dev開發環境、test測試環境、pro生產環境。
配置列表
全局參數
參數名 | 含義 | 可選值 | 默認值 | 支持版本 |
---|---|---|---|---|
nacos.home(-D) | Nacos的根目錄 | 目錄路徑 | Nacos安裝的目錄 | >= 0.1.0 |
nacos.standalone(-D) | 是否在單機模式 | true/false | false | >= 0.1.0 |
nacos.functionMode(-D) | 啓動模式,支持只啓動某一個模塊,不設置時所有模塊都會啓動 | config/naming/空 | 空 | >= 0.9.0 |
nacos.inetutils.prefer-hostname-over-ip | cluster.conf 裏是否應該填hostname |
true/false | false | >= 0.3.0 |
nacos.inetutils.ip-address | 本機IP,該參數設置後,將會使用這個IP去cluster.conf 裏進行匹配,請確保這個IP的值在cluster.conf 裏是存在的 |
本機IP | null | >= 0.3.0 |
nacos.security.ignore.urls | 控制檯鑑權跳過的接口 | 需要跳過控制檯鑑權的接口列表 | 空 | >= 0.9.0 |
Naming模塊
參數名 | 含義 | 可選值 | 默認值 | 支持版本 |
---|---|---|---|---|
nacos.naming.data.warmup | 是否在Server啓動時進行數據預熱 | true/false | false | >= 1.0.2 |
nacos.naming.expireInstance | 是否自動摘除臨時實例 | true/false | true | >= 1.0.2 |
nacos.naming.distro.taskDispatchPeriod | 同步任務生成的週期,單位爲毫秒 | 正整數 | 200 | >= 1.0.2 |
nacos.naming.distro.batchSyncKeyCount | 同步任務每批的key的數目 | 正整數 | 1000 | >= 1.0.2 |
nacos.naming.distro.syncRetryDelay | 同步任務失敗的重試間隔,單位爲毫秒 | 正整數 | 5000 | >= 1.0.2 |
除了上面列到的在application.properties
裏配置的屬性,還有一些可以在運行時調用接口來進行調節,這些參數都在Open API裏的查看系統當前數據指標
這個API裏有聲明。
Config模塊
參數名 | 含義 | 可選值 | 默認值 | 支持版本 |
---|---|---|---|---|
db.num | 數據庫數目 | 正整數 | 0 | >= 0.1.0 |
db.url.0 | 第一個數據庫的URL | 字符串 | 空 | >= 0.1.0 |
db.url.1 | 第二個數據庫的URL | 字符串 | 空 | >= 0.1.0 |
db.user | 數據庫連接的用戶名 | 字符串 | 空 | >= 0.1.0 |
db.password | 數據庫連接的密碼 | 字符串 | 空 | >= 0.1.0 |
CMDB模塊
參數名 | 含義 | 可選值 | 默認值 | 支持版本 |
---|---|---|---|---|
nacos.cmdb.loadDataAtStart | 是否打開CMDB | true/false | false | >= 0.7.0 |
nacos.cmdb.dumpTaskInterval | 全量dump的間隔,單位爲秒 | 正整數 | 3600 | >= 0.7.0 |
nacos.cmdb.eventTaskInterval | 變更事件的拉取間隔,單位爲秒 | 正整數 | 10 | >= 0.7.0 |
nacos.cmdb.labelTaskInterval | 標籤集合的拉取間隔,單位爲秒 | 正整數 | 300 | >= 0.7.0 |
Nacos Java Client
客戶端的參數分爲兩種,一種是通過-D參數進行指定的配置,一種是構造客戶端時,通過Properties
對象指定的配置,以下沒有帶-D標註的都是通過Properties
注入的配置。
通用參數
參數名 | 含義 | 可選值 | 默認值 | 支持版本 |
---|---|---|---|---|
endpoint | 連接Nacos Server指定的連接點,可以參考文檔 | 域名 | 空 | >= 0.1.0 |
endpointPort | 連接Nacos Server指定的連接點端口,可以參考文檔 | 合法端口號 | 空 | >= 0.1.0 |
namespace | 命名空間的ID | 命名空間的ID | config模塊爲空,naming模塊爲public | >= 0.8.0 |
serverAddr | Nacos Server的地址列表,這個值的優先級比endpoint高 | ip:port,ip:port,… | 空 | >= 0.1.0 |
nacos.logging.path(-D) | 客戶端日誌的目錄 | 目錄路徑 | 用戶根目錄 | >= 0.1.0 |
Naming客戶端
參數名 | 含義 | 可選值 | 默認值 | 支持版本 |
---|---|---|---|---|
namingLoadCacheAtStart | 啓動時是否優先讀取本地緩存 | true/false | false | >= 1.0.0 |
namingClientBeatThreadCount | 客戶端心跳的線程池大小 | 正整數 | 機器的CPU數的一半 | >= 1.0.0 |
namingPollingThreadCount | 客戶端定時輪詢數據更新的線程池大小 | 正整數 | 機器的CPU數的一半 | >= 1.0.0 |
com.alibaba.nacos.naming.cache.dir(-D) | 客戶端緩存目錄 | 目錄路徑 | {user.home}/nacos/naming | >= 1.0.0 |
com.alibaba.nacos.naming.log.level(-D) | Naming客戶端的日誌級別 | info,error,warn等 | info | >= 1.0.0 |
com.alibaba.nacos.client.naming.tls.enable(-D) | 是否打開HTTPS | true/false | false | >= 1.0.0 |
Config客戶端
參數名 | 含義 | 可選值 | 默認值 | 支持版本 |
---|---|---|---|---|
configLongPollTimeout(config.long-poll.timeout 1.0.1版本) | 長輪詢的超時時間,單位爲毫秒 | 正整數 | 30000 | >= 1.0.2 |
configRetryTime(config.retry.time 1.0.1版本) | 長輪詢任務重試時間,單位爲毫秒 | 正整數 | 2000 | >= 1.0.2 |
maxRetry | 長輪詢的重試次數 | 正整數 | 3 | >= 1.0.2 |
enableRemoteSyncConfig | 監聽器首次添加時拉取遠端配置 | 布爾值 | false | >= 1.0.2 |
com.alibaba.nacos.config.log.level(-D) | Config客戶端的日誌級別 | info,error,warn等 | info | >= 1.0.0 |
JM.SNAPSHOT.PATH(-D) | 客戶端緩存目錄 | 目錄路徑 | {user.home}/nacos/config | >= 1.0.0 |