官方标準運作方式
下載下傳解壓可運作包
curl -O https://github.com/alibaba/nacos/releases/download/1.3.2/nacos-server-1.3.2.tar.gz
tar -zxvf nacos-server-1.3.2.tar.gz
cd nacos/bin
執行運作
# Linux/Unix/Mac 啟動指令(standalone代表着單機模式運作,非叢集模式):
sh startup.sh -m standalone
# 如果您使用的是ubuntu系統,或者運作腳本報錯提示[[符号找不到,可嘗試如下運作:
bash startup.sh -m standalone
# Windows 啟動指令(或者輕按兩下startup.cmd運作檔案)
cmd startup.cmd
為什麼要源碼化運作
1. 友善開發過程使用
如果從 Spring Cloud Netflix 體系遷移到 Spring Cloud Alibaba 技術體系,明顯的感受是整個體系得到簡化。 Nacos 承擔整個 Spring Cloud 的服務發現、配置管理部分的實作。 是整個開發過程中強依賴,啟動微服務業務要去檢查 Nacos Server 是否已經啟動,解壓安裝的方式變的非常不便。
如果把 Nacos Server 作為整個微服務架構的一部分直接 Main 啟動,是不是更加友善便利?
2. UI 個性定制化
- 若以解壓運作方式,修改 UI 幾乎不可能。可以下載下傳 Nacos 源碼繼續修改 然後重新打包運作。 非常的不友善
git clone https://github.com/alibaba/nacos.git
cd nacos/
mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
ls -al distribution/target/
// change the $version to your actual path
cd distribution/target/nacos-server-$version/nacos/bin
- 若以源碼方式運作,可以試試的調整 UI 然後 build 看到效果。
3. 保證 Server & Client 保持一緻
- pig 作為微服務開源項目,更新疊代速度非常快。每個版本依賴的 Nacos Client 版本都可能發生變化,這就意味着對應的 Nacos Server 版本也要對應更新,這需要使用者自行下載下傳更新成本很高。
- Nacos 具有良好小版本向下相容性,但是大版本功能變化挺大,比如 1.2 、1.3 權限的變更。是以建議大家在實際開發過程中保持版本一緻。
- 若以源碼運作的方式,可以很好的解決此問題。
如何實作
1. 下載下傳 Nacos 源碼
- 隻需保留 nacos console 子產品,其他子產品均可删除

2. console 源碼結構說明
├── pom.xml
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── alibaba
│ │ └── nacos
│ │ ├── Nacos.java # main 啟動類
│ │ └── console # 控制台相關源碼
│ └── resources
│ ├── application.properties # nacos 配置檔案
│ └── static # 靜态頁面目錄
└── test # 單元測試部分
3. 修改 Nacos.java 類
- 主要在 main 方法中增加 兩個參數,是否是單機啟動 & 是否關閉權限校驗
@SpringBootApplication(scanBasePackages = "com.alibaba.nacos")
@ServletComponentScan
@EnableScheduling
public class Nacos {
public static void main(String[] args) {
# 通過環境變量的形式 設定 單機啟動
System.setProperty(ConfigConstants.STANDALONE_MODE, "true");
# 通過環境變量的形式 設定 關閉權限校驗
System.setProperty(ConfigConstants.AUTH_ENABLED, "false");
SpringApplication.run(Nacos.class, args);
}
}
4. 修改 console/pom.xml
- 由于不在使用 nacos bom 管理,需要給所有依賴坐标增加版本号
- 由于 nacos-config /nacos-naming 等包沒有上傳至中央參考 無法下載下傳到,groupId 變更為
即可下載下傳com.pig4cloud.nacos
- 變更後參考如下
<dependency>
<groupId>com.pig4cloud.nacos</groupId>
<artifactId>nacos-config</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<version>7.0.59</version>
</dependency>
<dependency>
<groupId>com.pig4cloud.nacos</groupId>
<artifactId>nacos-naming</artifactId>
<version>1.3.2</version>
</dependency>
...
總結
-
- 以上修改後源碼參考: https://gitee.com/log4j/pig
-
- 是否以源碼形式運作,此問題仁者見仁智者見智 根據你們實際情況來。
項目推薦: Spring Cloud 、Spring Security OAuth2的RBAC權限管理系統 歡迎關注