開發與維運

服務註冊與發現nacos | 帶你讀《Spring Cloud Alibaba(2019)》之三

本文來自於《精通Spring Cloud Alibaba》課程的整理,講師為餘勝軍,點擊查看視頻內容
本文系志願者整理,供配合學習中心課程使用,不做商業用途。

服務註冊與發現nacos

Nacos產生的背景

Nacos分佈式註冊與發現功能|分佈式配置中心
產生背景rpc遠程調用中,服務的url的治理
Rpc的遠程調用框架 HttpClient、gprc、dubbo、rest、openfeign等。

傳統的rpc遠程調用中存在哪些問題

1、超時的問題
2、安全的問題
3、服務與服務之間URL地址管理

在我們微服務架構通訊,服務之間依賴關係非常大,如果通過傳統的方式管理我們服務的url地址的情況下,一旦地址發生變化的情況下,還需要人工修改rpc遠程調用地址。
每個服務的url管理地址發出複雜,所以這是我們採用服務url治理技術,可以實現對我們整個實現動態服務註冊與發現、本地負載均衡、容錯等。

1.png

服務治理基本的概念

在RPC遠程調用過程中,服務與服務之間依賴關係非常大,服務Url地址管理非常複雜,所以這時候需要對我們服務的url實現治理,通過服務治理可以實現服務註冊與發現、負載均衡、容錯等。

2.png

rpc遠程調用中,地址中 域名和端口號/調用的方法名稱:
域名和端口號/調用的方法名稱
192.168.212.110:8080/getUser

把每個服務器地址信息和端口人工存放到數據庫表中
Id serviced ip 端口號
Mayikt-member 192.168... 8082
Mayikt-member 192.168... 8081
基於數據庫形式實現服務url治理
缺點:維護成本非常高、沒有完全絕對實現動態智能

思考是否有更好的方案? 微服務中的註冊中心
整個微服務架構中最為核心的肯定是 註冊中心。

註冊中心:實際就是存放我們的服務的地址信息,能夠實現動態感知。
註冊中心:Dubbo依賴Zookeeper、Eureka、Consul、Nacos、Redis、數據庫

3.png

服務註冊中心的概念

每次調用該服務如果地址直接寫死的話,一旦接口發生變化的情況下,這時候需要重新發布版本才可以該接口調用地址,所以需要一個註冊中心統一管理我們的服務註冊與發現。

註冊中心:我們的服務註冊到我們註冊中心,key為服務名稱、value為該服務調用地址,該類型為集合類型。Eureka、consul、zookeeper、nacos等。
服務註冊:我們生產者項目啟動的時候,會將當前服務自己的信息地址註冊到註冊中心。

服務發現: 消費者從我們的註冊中心上獲取生產者調用的地址(集合),在使用負載均衡的策略獲取集群中某個地址實現本地rpc遠程調用。

微服務調用接口常用名詞

面試的過程:Nacos與Eureka區別、Eureka與Zookeeper
整個微服務的註冊中心實現原理

生產者:提供接口被其他服務調用
消費者:調用生產者接口實現消費
服務註冊:將當前服務地址註冊到
服務發現:

4.png

服務註冊原理實現:

1、生產者啟動的時候key=服務站的名稱 value ip 和端口號 註冊到我們的微服務註冊中心上。
Mayikt-member 192.168.212.110:8080
Mayikt-member 192.168.212.110:8081

2、註冊存放服務地址列表類型:key唯一,列表是list集合。
May
{
Mayikt-member:["192.168.212.110.8080"]
}

3、我們的消費者從我們註冊中心上根據服務名稱查詢服務地址列表(集合)
Mayikt-member===["192.168.212.110.8080" "192.168.212.110.8081"]

4、消費者獲取到集群列表之後,採用負載均衡器選擇一個地址實現rpc遠程調用

Nacos的基本的介紹

Nacos可以實現分佈式服務註冊與發現/分佈式配置中心框架。
官網的介紹: https://nacos.io/zh-cn/docs/what-is-nacos.html

Nacos的環境的準備

Nacos可以在linux/windows/Mac版本上都可以安裝
具體安裝教程地址:https://nacos.io/zh-cn/docs/quick-start.html

手動實現服務註冊與發現

1.實現服務註冊發送post請求:
'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
2.實現服務發現
http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName
詳細步驟操作:https://nacos.io/zh-cn/docs/quick-start.html
Nacos的基本的介紹

Nacos可以實現分佈式服務註冊與發現/分佈式配置中心框架。
官網的介紹: https://nacos.io/zh-cn/docs/what-is-nacos.html
Nacos的環境的準備
Nacos可以在linux/windows/Mac版本上都可以安裝
具體安裝教程地址:https://nacos.io/zh-cn/docs/quick-start.html

手動實現服務註冊與發現

1.實現服務註冊發送post請求:
'http://127.0.0.1:8848/nacos/v1/ns/instance?serviceName=nacos.naming.serviceName&ip=20.18.7.10&port=8080'
2.實現服務發現
http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=nacos.naming.serviceName
詳細步驟操作:https://nacos.io/zh-cn/docs/quick-start.html
5.png

Leave a Reply

Your email address will not be published. Required fields are marked *