Nacos支持三種部署模式html
一、單機模式:可用於測試和單機使用,生產環境切忌使用單機模式(知足不了高可用)java
二、集羣模式:可用於生產環境,確保高可用mysql
三、多集羣模式:可用於多數據中心場景spring
啓動 Nacos Serversql
Linux:sh startup.sh -m standalone
Windows:cmd startup.cmd -m standalone
或 雙擊 startup.cmd
啓動數據庫
關閉 Nacos Serverapache
Linux:sh shutdown.sh
Windows:cmd shutdown.cmd
或 雙擊 shutdown.cmd
啓動segmentfault
在0.7
版本以前,Nacos
使用的是嵌入式數據庫Derby
(Apache Derby)來存儲數據;0.7
版本,增長了對mysql
數據源的支持。瀏覽器
內嵌的數據庫,經過命令直接啓動便可,無需額外安裝。app
startup.cmd -m standalone
步驟一:安裝MySQL數據,版本要求:5.6.5+
步驟二:初始化數據庫
建立數據庫
create database if not exists nacos default charset utf8 collate utf8_general_ci;
初始化數據庫
在nacos server解壓目錄conf下,找到 nacos-mysql.sql 文件,直接執行,執行完成後,用Navicat客戶端查看
步驟三:修改conf/application.properties
文件,添加以下信息
## mysql datasource spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456
注意:spring.datasource.platform=mysql
別漏了,要否則仍是使用Derby
數據庫。
步驟四:啓動 Nacos Server
啓動成功後,咱們使用上一篇博客:《Nacos系列:Nacos的Java SDK使用》中的案例來驗證,運行NacosConfig,觀察數據表的內容變化,示例知行後,config_info
表和his_config_info
表都會有和配置相關的數據,以下圖所示:
彷佛Nacos的MySQL數據源只存儲了配置數據,服務列表和註冊的服務實例信息並不會出如今數據表中(經過運行示例中的NacosDiscovery類main()方法,就能夠觀察到該現象)
資源有限,我直接在Windows上模擬部署搭建「僞集羣」, 新建一個文件目錄NacosCluster,將Nacos Server解壓三份到該目錄下,分別命名爲nasosSlave0、nasosSlave一、nasosSlave2
,分配端口:884五、884六、8847
修改nasosSlave0/conf/application.properties,server.port=8845,並添加
## mysql datasource spring.datasource.platform=mysql db.num=1 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456
這裏先使用一個MySQL庫演示功能,實際生產上至少要使用主備模式,例如:
db.num=2 db.url.0=jdbc:mysql://127.0.0.1:3306/nacos1?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.url.1=jdbc:mysql://127.0.0.1:3306/nacos2?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=123456
拷貝nasosSlave0/conf/cluster.conf.example爲cluster.conf
,修改內容以下:
127.0.0.1:8845 127.0.0.1:8846 127.0.0.1:8847
nasosSlave一、nasosSlave2 和 nasosSlave0 除了端口不一樣外,其它配置保持一致。
分別啓動每臺 Nacos Server
startup.cmd -m cluster
注意:在Windows下,這個時候不能再雙擊startup.cmd
啓動了,若是這樣啓動仍然是以單機模式
運行,由於在bin/startup.cmd
中有下面這段代碼:
if not "%2" == "cluster" ( set "JAVA_OPT=%JAVA_OPT% -Xms512m -Xmx512m -Xmn256m" set "JAVA_OPT=%JAVA_OPT% -Dnacos.standalone=true" ) else ( set "JAVA_OPT=%JAVA_OPT% -server -Xms2g -Xmx2g -Xmn1g -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=320m" set "JAVA_OPT=%JAVA_OPT% -XX:-OmitStackTraceInFastThrow XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=%BASE_DIR%\logs\java_heapdump.hprof" set "JAVA_OPT=%JAVA_OPT% -XX:-UseLargePages" )
觀察控制檯,啓動成功後,在控制檯能夠看到以下信息:
E:\Software\Nacos\nacosCluster\nacosSlave0\bin>startup.cmd -m cluster ,--. ,--.'| ,--,: : | Nacos 0.8.0 ,`--.'`| ' : ,---. Running in cluster mode | : : | | ' ,'\ .--.--. Port: 8845 : | \ | : ,--.--. ,---. / / | / / ' Pid: 6568 | : ' '; | / \ / \. ; ,. :| : /`./ Console: http://192.168.1.102:8845/nacos/index.html ' ' ;. ;.--. .-. | / / '' | |: :| : ;_ | | | \ | \__\/: . .. ' / ' | .; : \ \ `. https://nacos.io ' : | ; .' ," .--.; |' ; :__| : | `----. \ | | '`--' / / ,. |' | '.'|\ \ / / /`--' / ' : | ; : .' \ : : `----' '--'. / ; |.' | , .-./\ \ / `--'---' '---' `--`---' `----' 2019-02-20 23:06:13,059 INFO The server IP list of Nacos is [127.0.0.1:8845, 127.0.0.1:8846, 127.0.0.1:8847] 2019-02-20 23:06:14,185 INFO Nacos is starting... 2019-02-20 23:06:15,409 INFO Nacos is starting... 2019-02-20 23:06:16,512 INFO Nacos is starting... 2019-02-20 23:06:17,605 INFO Nacos is starting... 2019-02-20 23:06:18,736 INFO Nacos is starting... 2019-02-20 23:06:19,860 INFO Nacos is starting... 2019-02-20 23:06:21,021 INFO Nacos is starting... 2019-02-20 23:06:22,230 INFO Nacos is starting... 2019-02-20 23:06:23,390 INFO Nacos is starting... 2019-02-20 23:06:24,605 INFO Nacos is starting... 2019-02-20 23:06:25,991 INFO Nacos is starting... 2019-02-20 23:06:26,993 INFO Nacos is starting... 2019-02-20 23:06:28,197 INFO Nacos is starting... 2019-02-20 23:06:29,264 INFO Nacos is starting... 2019-02-20 23:06:30,515 INFO Nacos is starting... 2019-02-20 23:06:31,810 INFO Nacos is starting... 2019-02-20 23:06:32,934 INFO Nacos is starting... 2019-02-20 23:06:33,976 INFO Nacos is starting... 2019-02-20 23:06:35,044 INFO Nacos is starting... 2019-02-20 23:06:36,153 INFO Nacos is starting... 2019-02-20 23:06:37,290 INFO Nacos is starting... 2019-02-20 23:06:38,616 INFO Nacos is starting... 2019-02-20 23:06:39,736 INFO Nacos is starting... 2019-02-20 23:06:40,824 INFO Nacos is starting... 2019-02-20 23:06:41,757 INFO Nacos Log files: E:\Software\Nacos\nacosCluster\nacosSlave0\/logs/ 2019-02-20 23:06:41,768 INFO Nacos Conf files: E:\Software\Nacos\nacosCluster\nacosSlave0\/conf/ 2019-02-20 23:06:41,771 INFO Nacos Data files: E:\Software\Nacos\nacosCluster\nacosSlave0\/data/ 2019-02-20 23:06:41,774 INFO Nacos started successfully in cluster mode.
在瀏覽器分別訪問以下路徑http://localhost:8845/nacos
http://localhost:8846/nacos
http://localhost:8847/nacos
若是都能訪問成功,證實集羣模式部署成功。
Nacos支持NameServer路由請求模式,經過它您能夠設計一個有用的映射規則來控制請求轉發到相應的集羣,在映射規則中您能夠按命名空間或租戶等分片請求(From Nacos官網)
據Nacos
官方宣稱,Nacos v0.8.0 Pre-GA
版本已經能夠用於生產環境,在此以前的版本,請勿在生產上使用。