概述
nacos,阿里開源的注冊中心+配置中心,采用獨立部署模式,有一個友好的前端界面,對於服務下線,修改配置等這些操作都可以通過前端界面完成,非常方便,截止到目前nacos最新的版本是V1.2.1,生產上已經有很多公司在使用了,包括我司,本文作為介紹nacos源碼系列的第一篇,主要起一個拋磚引玉的作用,小弟也是第一次寫源碼解析相關文章,水平有限,希望大佬包涵。
環境搭建
以下為我正在使用的環境
idea: 2019
maven: 3.5
jdk: 1.8
源碼下載
git地址:https://github.com/alibaba/nacos.git
大家可以先fork到自己的倉庫中,之后改動,做注釋之類的提交比較方便。
源碼結構介紹
api: 接口定義
client: 這個就是程序中引入的,用於訪問nacos注冊中心和配置中心的服務端
config: 配置中心服務端代碼
naming:注冊中心服務端代碼
core:把config和naming部分公共代碼抽取出來,config和naming都依賴於這個包
console: 這個依賴於naming和config,nacos有一個前端,就是和這個直接交互的
剩下的一些非核心的代碼就不介紹了,我也沒有仔細看。
啟動
把代碼導入到idea中,使用maven構建,下載所需要的jar包需要一段時間,之后找到nacos-console模塊,該模塊是一個springboot項目,然后在idea中配置啟動參數-Dnacos.standalone=true,在單機模式下啟動,當然也可以在集群模式下啟動,不過需要初始化mysql數據庫,作為初次啟動還是使用單機模式吧。
之后就可以打開example文件了,這個里面有兩個測試demo,分別是訪問注冊中心和配置中心的,下面的文章就會通過這個入口來看客戶端是怎么訪問注冊中心和配置中心的。
總結
看了幾個關於nacos源碼的博客,很多大佬都說nacos源碼很簡單,但是我看了之后決得沒有那么簡單,里面有很多之前沒有見過的,總的來說發時間還是可以搞懂的。