SpringCloud Alibaba項目實戰(zhàn)之nacos-server服務(wù)搭建過程
源碼地址:https://gitee.com/fighter3/eshop-project.git
持續(xù)更新中……
大家好,我是三分惡。
這一節(jié)我們來學習SpringCloud Alibaba體系中一個非常重要的組件——Nacos。
1、Nacos簡介
Nacos官方網(wǎng)站:https://nacos.io/zh-cn/
1.1、什么是Nacos
Nacos是阿里巴巴開源的一個動態(tài)服務(wù)發(fā)現(xiàn)、配置管理和服務(wù)管理平臺。
Nacos英文全稱Dynamic Naming and Configuration Service,Na為naming/nameServer即注冊中心,co為configuration即注冊中心,service是指該注冊/配置中心都是以服務(wù)為核心。
Nacos 無縫支持一些主流的開源生態(tài),使用Nacos,可以簡化服務(wù)發(fā)現(xiàn)、配置管理、服務(wù)治理及管理。
如果要把Nacas和SpringCloud Netflix的組件對標的話,那么:
1.2、Nacos基本原理
Nacos作為注冊中心分為server與client。
Server采用Java編寫,為client提供注冊發(fā)現(xiàn)服務(wù)與配置服務(wù)。而client可以用多語言實現(xiàn),client與微服務(wù)嵌套在一起,nacos提供sdk和openApi,如果沒有sdk也可以根據(jù)openApi手動寫服務(wù)注冊與發(fā)現(xiàn)和配置拉取的邏輯。
1.2.1、注冊中心原理
服務(wù)注冊方法:服務(wù)注冊的策略的是每5秒向nacos server發(fā)送一次心跳,心跳帶上了服務(wù)名,服務(wù)ip,服務(wù)端口等信息。同時 nacos server也會向client 主動發(fā)起健康檢查,支持tcp/http檢查。如果15秒內(nèi)無心跳且健康檢查失敗則認為實例不健康,如果30秒內(nèi)健康檢查失敗則剔除實例。
1.2.2、配置中心原理
2、Nacos-Server服務(wù)部署
Nacos 依賴 Java 環(huán)境來運行。如果是從代碼開始構(gòu)建并運行Nacos,還需要配置 Maven環(huán)境。我們直接使用發(fā)行版,需要保證JDK版本在1.8以上。
Nacos Server 有兩種運行模式:
- standalone
- cluster
2.1、standalone 模式
我們使用win10來進行Nacos Server的standalone 模式的部署。
下載nacos-server
從https://github.com/alibaba/nacos/releases 下載nacos-server發(fā)行版。
官方推薦的版本是1.4.2或2.0.1。
按照官方推薦,我們來嘗(踩)鮮(坑)最新的發(fā)行版2.0.1,下載壓縮包,下載完成后解壓
啟動nacos-server服務(wù)
進入%path%\nacos\bin文件夾,執(zhí)行cmd命令startup.cmd -m standalone
,其中-m standalone指定為單機模式,否則以cluster集群模式啟動。
可以看到Nacos Server的地址,訪問 http://192.168.31.39:8848/nacos/index.html
需要登錄,初始賬號/密碼是 nacos/nacos
登錄之后可以看到Nacos的控制臺。
Linux下部署Nacos-Server服務(wù)也是類似,同樣是先解壓發(fā)行壓縮包,然后執(zhí)行啟動腳本啟動:
startup.sh -m standalone
這種默認情況下,我們的數(shù)據(jù)寫入了了嵌入式數(shù)據(jù)庫。不太方便觀察數(shù)據(jù)存儲的情況,nacos也提供了支持mysql數(shù)據(jù)源的能力。
注意:以下操作我在2.0.1版本失敗了,所以以下操作是基于1.4.2版本。
MySQL數(shù)據(jù)庫版本要求5.5以上。
1.創(chuàng)建數(shù)據(jù)庫庫,使用初始化文件nacos-mysql.sql
初始化
2.修改conf/application.properties
文件,增加支持mysql數(shù)據(jù)源配置(目前只支持mysql),修改mysql數(shù)據(jù)源的url、用戶名和密碼。
spring.datasource.platform=mysql ### Count of DB: db.num=1 ### Connect URL of DB: db.url.0=jdbc:mysql://127.0.0.1:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC db.user.0=root db.password.0=root ### Connection pool configuration: hikariCP db.pool.config.connectionTimeout=30000 db.pool.config.validationTimeout=10000 db.pool.config.maximumPoolSize=20 db.pool.config.minimumIdle=2
使用命令startup.cmd -m standalone
啟動Nacos Server
2.2、cluster 模式
開發(fā)和測試,我們直接用standalone 模式,OK,沒什么問題。但是生產(chǎn)環(huán)境,為了保證Nacos的高可用,我們就得使用 cluster模式。
cluster 模式必須要用 MySQL,MySQL數(shù)據(jù)導入和上面一致,然后改兩個配置文件:
conf/cluster.conf conf/application.properties
大致如下:
cluster.conf,填入要運行 Nacos Server 機器的 ip
192.168.100.155
192.168.100.156
192.168.100.157
修改NACOS_PATH/conf/application.properties,加入 MySQL 配置
db.num=1 db.url.0=jdbc:mysql://localhost:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true db.user=root db.password=root
Nacos采用的一個Leader節(jié)點,多個Follower節(jié)點的集群架構(gòu),數(shù)據(jù)一致性算法采用的是Raft。
至于實戰(zhàn),由于機器資源資源原因,這里就不再演示。
下一節(jié),我們會把服務(wù)注冊到Nacos注冊中心,敬請期待!
參考:
【1】:Nacos 文檔
【3】:Spring Cloud實戰(zhàn) | 第一篇:Windows搭建Nacos服務(wù)
【5】:Nacos部署環(huán)境
以上就是SpringCloud Alibaba項目實戰(zhàn)之nacos-server服務(wù)搭建過程的詳細內(nèi)容,更多關(guān)于SpringCloud Alibaba nacos-server搭建的資料請關(guān)注腳本之家其它相關(guān)文章!
- SpringCloudAlibaba微服務(wù)調(diào)用組件OpenFeign的方法
- Alibaba?SpringCloud集成Nacos、openFeign實現(xiàn)負載均衡的解決方案
- 淺談SpringCloud?Alibaba和SpringCloud的區(qū)別
- 聊聊SpringCloud和SpringCloudAlibaba的區(qū)別
- SpringCloudAlibaba整合Feign實現(xiàn)遠程HTTP調(diào)用的簡單示例
- SpringCloudAlibaba分布式組件詳解
- SpringCloud Alibaba 基本開發(fā)框架搭建過程
- Springcloud Alibaba超詳細使用詳解
相關(guān)文章
Spring?Cloud?Stream消息驅(qū)動組件使用方法介紹
Spring?Cloud?Stream?消息驅(qū)動組件幫助我們更快速,更方便,更友好的去構(gòu)建消息驅(qū)動微服務(wù)的。當時定時任務(wù)和消息驅(qū)動的?個對比。消息驅(qū)動:基于消息機制做一些事情2022-09-09java高并發(fā)下解決AtomicLong性能瓶頸方案LongAdder
這篇文章主要為大家介紹了java高并發(fā)下解決AtomicLong性能瓶頸方案LongAdder,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12Java Idea TranslationPlugin翻譯插件使用解析
這篇文章主要介紹了Java Idea TranslationPlugin翻譯插件使用解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-04-04JavaScript base64 與 File 之間的互轉(zhuǎn)(操作方法)
在JavaScript 中,可以使用 Blob 對象將 base64 字符串轉(zhuǎn)換為 File 對象,這篇文章主要介紹了JavaScript base64 與 File之間的互轉(zhuǎn),需要的朋友可以參考下2024-05-05