微服務時代之網關相關技術選型及部署(nacos+gateway)


1.場景描述

因要用到微服務,關於注冊中心這塊,與同事在技術原型上做了討論,初步定的方案是使用:阿里巴巴的nacos+springcloud gateway,下面表格是同事整理的注冊中心對比,以前用的springcloud的eureka作為注冊中心(springcloud-高可用部署),與eurka相比,這次之所以用阿里的nacos,其中還有一個主要的原因就是nacos集成了動態加載,不用重啟網關,動態加載服務配置等。

注冊中心對比:

Feature Zookeeper Eureka Consul Etcd Nacos
服務健康檢查 (弱)長連接,keepalive 可配支持 服務狀態,內存,硬盤等 連接心跳 心跳/自定義
多數據中心 支持 支持
kv存儲服務 支持 支持 支持 支持
一致性 paxos raft raft raft
CAP定理 CA AP CA CP AP
使用接口(多語言能力) 客戶端 http(sidecar) 支持http和dns http/grpc dns/http/rpc
watch支持 支持 支持 long polling/大部分增量 全量/支持long polling 支持 long polling 全量/支持long polling
自身監控 metrics metrics metrics metrics
安全 acl acl /https https支持(弱) acl /https
Spring Cloud集成 已支持 已支持 已支持 已支持 已支持

推薦使用Nacos>Consul>Etcd>Eureka>Zookeeper

Nacos為springcloudalibaba全家桶組件,適合使用dubbo作為springcloud的rpc服務接入。

2. nacos簡要介紹

nacos是阿里巴巴的開源項目,今年初發布的版本已經達到生產等級,有中文文檔和英文文檔,社區非常活躍。

關鍵特性:

有興趣的童鞋可以去看下,官網地址:https://nacos.io/zh-cn/index.html

3.部署及說明

這幾天把官網文檔過了一遍,部署了個基礎的demo版本,介紹下。

3.1 部署說明

軟件老王用了6台虛擬機:

(1)11服務器,部署了springcloud gateway,對外統一提供服務;

(2)12和13服務器,部署了nacos,互為注冊,可水平擴展,對外提供服務注冊、配置注冊等;

(3)14服務器,部署了producer(服務提供方),部署了兩個實例;

(4)15服務器,部署了consumer(服務調用方,軟件老王),部署了兩個實例;

(5)16服務器,測試了下動態配置,可忽略;

3.2 架構圖

3.3 架構圖詳細說明

3.3.1 nacos注冊中心及配置中心。

nacos自帶了控制台,訪問地址:http://10.192.168.12:8848/nacos或者http://10.192.168.13:8848/nacos

用戶名:nacos; 密碼:nacos;

登錄成功后如下圖:

主要有三大功能:

(1)注冊中心節點列表,這里顯示的nacos注冊中心,可水平擴展,部署多台,這里部署了兩台,分別為12與13服務器。

(2)服務管理,啟動了3個服務,分別為網關、服務提供者(2個實例)、服務消費者(2個實例)。

(3)配置管理,這里配置了兩個,第一個是測試用的,測試了動態獲取,第二個是11服務器上springcloud gate的配置文件。

3.3.2 訪問說明

(1)Gateway訪問地址:

http://10.192.168.11:7000/producer/getpinfo

說明:10.192.168.11:7000為網關地址,producer為注冊中心服務名稱,getpinfo為具體服務。

(2)服務提供者地址:

http://10.192.168.14:7001/getpinfo,http:/10.192.1681.14:7001/getpinfo,
15的服務調用方,就是通過rest調用,跟直接從網關調用一樣,軟件老王就不啰嗦了。

(3)nacos地址:

http://10.192.168.12:8848/nacos,http:/10.192.1681.13:8848/nacos

3.4 寫在最后

目前nacos還處於快速迭代階段,不管是版本還是功能都還稍微有點亂,畢竟去年才開源,還是有些坑要踩的,軟件老王認為還是要一顆紅心兩手准備的。


I’m 「軟件老王」,如果覺得還可以的話,關注下唄,后續更新秒知!歡迎討論區、同名公眾號留言交流!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM