成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

被妖魔化的服務發現原來這么簡單

開發 架構
第一種方法是「輪詢」,消費者需要每隔幾秒查詢服務列表是否有改變。如果服務很多,服務列表很大,消費者很多,那么服務發現也會有一定的壓力 第二種方法是「訂閱消費模式」,服務消費者訂閱一個消息,服務提供者有變動直接往消息中發送對應變化就行。

微服務在當今的互聯網架構中的重要性我在這里就不多說了,隨著微服務的大范圍應用,「服務發現」這個詞也變的越來越火熱。在平時的工作中,我發現現在很多人喜歡把一些很簡單的事情說的很復雜,比如什么BFF架構,這中臺那中臺的。其實服務發現也是一樣,很多文章把這塊內容寫的過于妖魔化,導致很多人看起來云里霧里的感覺好像很高深的樣子,接下來就放棄這塊了。「其實服務發現是個很簡單的過程」,稍微有點編碼基礎的人都能看懂。

傳統的客戶端和服務端的交互模式?

圖片

  • 服務端1 2 3  分別提供了一個服務的「ip」和「端口號」
  • 這里的客戶端不是咱們狹義理解的客戶端app或者前端,客戶端也可以是一個服務端,比如你在一個golang項目中需要不同的服務等,那么你這個golang項目就是上圖中的客戶端,這一點尤其要注意。
  • 如果說的準確一點,這里的客戶端應該叫做「服務消費者」,服務端應該叫做「服務提供者」

上面這種傳統的交互模式看著沒什么問題,但是其實可用性并沒那么好,首先比如你的服務端2掛了,但是客戶端還是不知道的,依然會繼續請求,這樣可用性當然是大大的下降的,所以接下來就引發出了我們接下來要講的「服務發現」模式

服務發現模式?

大概流程?

圖片

其實所謂的服務發現,就是服務消費者在調用服務提供者提供的服務的時候,多了一層「服務中介」。服務中介中有很多key/value鍵值對,key是「服務名稱」,value是「服務提供者的地址列表」。「當你新增一個服務提供者的時候,就往服務中介中寫入kv數據,這個過程叫做服務注冊」 「當你請求一個服務的時候,直接拿著key去服務中介中取對應的value,也就是服務提供者的地址列表,然后去請求就可以了。」

當服務提供者節點掛掉時,要求服務能夠及時取消注冊,比便及時通知消費者重新獲取服務地址。

當服務提供者新加入時,要求服務中介能及時告知服務消費者,你要不要嘗試一下新的服務。

基本過程如下圖

圖片

  • 步驟1:每次新增加一個服務提供者,需要先去服務注冊中心注冊一個key/value(服務名稱/服務提供者的地址列表)
  • 步驟2:服務調用者不直接調用服務提供者,而是拿著標志(也就是上面注冊的key(服務名稱))去服務注冊中心查找對應的value(服務提供者的地址列表)
  • 步驟3:服務注冊中心會告訴服務調用者對應的key(服務名稱)是否有value(服務提供者的地址列表),有的話會把對應的value(服務提供者的地址列表)返回給服務調用者
  • 步驟4:服務調用者會拿著返回的value(服務提供者的地址列表)去請求對應的服務

服務發現是否太過簡單??

上面的過程看起來好像是有點太簡單了,而且看起來也沒解決什么問題呀,而且好像還徒增了復雜度。其實并不是這樣的。

服務提供者進程如果被kill -9暴力殺死,服務消費者不知道怎么辦?

這個不用擔心,服務發現中引入「服務保活和檢查機制」,并更換數據結構。服務提供者需要每隔5秒左右向服務發現匯報存活,服務發現將服務地址和匯報時間記錄在kv中。服務中介需要每隔10秒左右檢查kv數據結構,踢掉匯報時間嚴重落后的服務地址項。這樣就可以準實時地保證服務列表中服務地址的有效性。這也就是我們說的「服務健康檢查」

服務列表變動時如何通知消費者?

第一種方法是「輪詢」,消費者需要每隔幾秒查詢服務列表是否有改變。如果服務很多,服務列表很大,消費者很多,那么服務發現也會有一定的壓力 第二種方法是「訂閱消費模式」,服務消費者訂閱一個消息,服務提供者有變動直接往消息中發送對應變化就行。

常見的服務發現方案?

  • - DNS
  • - mDNS
  • - Zookeeper
  • - Etcd
  • - Consul

具體方案大概了解一下就行,后面我們會詳細介紹一下「Consul」,那么我們下期再見吧。如果這篇文章有幫助到你,

責任編輯:武曉燕 來源: 程序員小飯
相關推薦

2014-11-25 15:02:01

客服系統

2009-01-18 10:15:20

SaaS服務SOA

2021-04-19 05:42:51

Mmap文件系統

2023-11-01 14:49:07

2020-09-24 06:44:54

HTTPS網站 HTTP

2014-10-08 15:00:50

SUSE操作系統云計算

2019-03-15 10:55:12

通信系統手機

2023-09-22 08:00:00

分布式鎖Redis

2020-11-27 10:34:01

HTTPHTTPS模型

2014-06-06 14:48:58

TDFDD4G

2020-10-22 08:01:52

XMLJSON轉換

2010-08-02 13:55:20

2016-03-21 11:09:52

Tableau/大數據

2025-03-20 12:33:36

2019-07-15 09:06:08

程序員技能開發者

2019-05-27 14:03:48

開發技能代碼

2022-01-27 14:12:49

Python游戲腳本

2021-12-30 10:55:54

Python游戲腳本

2021-06-10 06:57:39

Redis存儲數據庫

2020-11-02 14:38:56

Java 深度學習模型
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产91久久久久蜜臀青青天草二 | 国产在线精品一区二区三区 | a级片网站| 亚洲 欧美 日韩在线 | 99re在线播放 | 久热m3u8 | 国产第一亚洲 | 欧美一区二区三区在线观看 | 精品久久久久一区二区国产 | 国产一区二区三区四 | 日韩精品福利 | 日韩精品一区二区三区 | 中文字幕在线播放不卡 | 久久久久久久一区二区三区 | 中文字幕欧美一区 | 日本韩国电影免费观看 | 亚洲日本欧美日韩高观看 | 国产精品永久免费观看 | 在线观看免费黄色片 | 亚洲综合色站 | 日韩av一区二区在线观看 | 欧美一级免费看 | 欧美日韩一 | 免费国产一区 | 99久久国产精 | 亚洲一区国产精品 | 欧美黄色网络 | 亚洲精品免费观看 | av一区二区在线观看 | 嫩草视频入口 | av天天干| 国产人成精品一区二区三 | 国产精品久久久久久吹潮 | 一区二区三区四区电影视频在线观看 | 免费三级黄 | 中文字幕精品一区久久久久 | 午夜av免费 | 亚洲欧美综合网 | 国产精品视频久久 | 国产精品三级 | 久艹av |