啥是佩奇之啥是Consul

2020-12-20 小碼農談IT

啥是佩奇?不,啥是Consul?本文中小馬力求以通俗的語言來講述一下分布式架構中作為服務註冊和服務發現環節極其重要的基礎設施之一Consul,是什麼、為什麼、怎麼做。作為入門是個不錯的參考。

使用別名的生活場景

別的不說,咱們先來看一個場景。假設你開了一家小型服裝公司。那麼你的公司在全國鋪點代理商,比如福州,南京,杭州等等,你清晰地記著福州站由張三負責,南京站由李四負責,杭州站由王五負責等等,通訊錄是這樣的:張三159xxx,李四137xxxx,王五xxxx。起初,你的所有通信還是針對於人,比如這批貨明日發給張三,那批貨下周要發給李四。日復一日,你的公司逐漸壯大,你的代理商遍布全國各地,你早已記不清誰是負責福州站誰是負責南京站的了,而且各個地方的代理商因各種因素時常變更負責人,你經常被這些具體人名和對應的地點搞得焦頭爛額。

這個時候你臨機一動,為啥不只以站點名稱代替直接聯繫負責人呢。於是你的通訊錄是這樣的福州站159xxxx,南京站137xxxx,這樣省去了聯繫時直接記憶對應人名的麻煩,而且你不用關心,哪個站是不是又換人了,又得更改通訊錄名稱和記名字了。這其實就是一個別名的作用。你只需要知道發給福州站就可以了,不用知道具體是發給誰。

這個生活中的道理被運用到了系統架構中(其實這個有點像域名解析的原理,一個域名可以解析到不同的IP,用戶只需要認識域名就行了不需要知道IP也不需要管是否變更了IP,對於用戶是透明的)。分布式系統架構中由於各自依賴大量的服務,服務之間的通訊如果使用IP直接通訊,那麼在擴容和變更機器的時候將非常麻煩。比如擴容,線上秒殺活動進行了一半,你發現性能達到瓶頸了你說你要暫停下系統,更改下配置文件增加幾臺機器的IP配置,然後重啟一下再進行,這是不可能的。因此,當服務之間的通訊採用別名來進行的時候,如果更換機器IP就無須暫停活動了,因為有中間別名和IP的映射,彼此間只需要知道服務別名就可以了。這就是分布式中的服務註冊和服務發現環節。

未使用服務發現時,用IP和埠通信

服務發現

在大中型分布式系統中,通常都是集群,一個應用系統由多個功能服務組成,且一個功能服務可能多臺伺服器組成。彈性伸縮伺服器數量(增刪改機器IP),伺服器功能異常無縫切換等顯然只通過更改配置文件來處理是無法滿足的。如何解決呢?我們引入註冊中心,服務治理的概念。實現的方法就是:服務註冊,服務發現(核心其實就是鍵值存儲也就是共享數據中心)。

服務發現是指使用一個註冊中心來記錄分布式系統中的全部服務的信息,以便其他服務能夠快速地找到這些已註冊的服務。服務發現組件有:Eureka、Consul、etcd、Zookeeper等。接下來小馬就帶大家一起來看看啥是Consul。

Consul

Consul是由HashiCorp基於Go語言開發的支持多數據中心分布式高可用的服務發布和註冊服務軟體,採用Raft算法保證服務的一致性,且支持健康檢查。其主要特點:服務註冊發現、健康檢查、鍵值存儲(可用於全局配置)、安全服務通信、多數據中心。

Consul 的核心功能就是服務註冊和發現,Consul 客戶端通過將自己註冊到 Consul 伺服器集群,然後等待調用方去發現服務,實現代理轉發到真正的業務系統,還可以基於服務發現做負載均衡,甚至可以在客戶端請求到底服務之前進行攔截,做一些基礎性的工作,比如身份驗證、限流、熔斷等等業務系統的前瞻性工作。

Consul的原理

為了保證數據強一致性以及多數據中心的支持,consul採用的是集群的形式出現,相關概念:Consul中包括的2種不同的節點:Server、Client。我們稱為server端節點(一般建議至少需要3-5個server端節點),client端節點,其中server端節點會有一個Server-Leader,稱為領導者節點,其他的可以均稱為候選者。每臺server都有自己的數據中心,領導者負責同步存儲信息。如下圖。但數據強一致性帶來的副作用是當數據在同步或者Server在選舉Leader過程中,會出現集群不可用,這就像從時間換空間之間的一種取捨是一樣的道理。

阿里1,騰訊,阿里2組成服務發現

整體工作流程如下:

服務A-N把當前自己的網絡位置註冊到服務發現模塊,服務發現就以K-V的方式記錄下,K一般是服務名,V就是IP:PORT。服務發現模塊定時的輪詢查看這些服務能不能訪問的了(健康檢查)。客戶端在調用服務A-N的時候,就先跑去服務發現模塊問下它們的網絡位置,然後再調用它們的服務。客戶端只認服務名不認服務IP和埠。如圖。

服務發現工作流程

Consul實例

以下簡單概括了實現流程,

1.安裝consul軟體:Consul本身只是一個二進位的可執行文件,所以安裝和部署都非常簡單,只需要從官網下載後,解壓後執行可執行文件即可(每臺服務發現機器都需要安裝);

2.配置好服務端和客戶端節點,啟動集群中各臺機器的consul服務,啟動時指定好公網IP,並consul join加入集群才能互通;

3.最後就可以採用api註冊服務以及發現服務了。步驟如下圖。

註冊服務的數據格式
使用api註冊服務
使用api發現服務

以上就是consul入門簡述了,更多詳細資料請參看官方文檔。小馬要去啃西瓜去了,拜拜。

相關焦點

  • 啥是佩奇,佩奇是啥?
    如果之前有人問啥是佩奇,我會告訴他佩奇是動畫片裡的一隻粉紅小豬,而現在我想很多人都否定了我這個答案吧。「啥是佩奇?」「佩奇就是容易被忽略的親情。」前兩天《啥是佩奇》的先導片,這個僅有5分40秒的視頻一經播出,便走紅網絡,其中那個朋克風的小豬佩奇被網友成為2019年最走心的新年禮物。
  • 啥是佩奇?啥是證件翻譯?
    最近,整個朋友圈都被一個叫《啥是佩奇》的短片刷屏了,短片幽默中帶著感動,被逗笑的同時又看得熱淚盈眶。《啥是佩奇》以小見大,講的其實是一個暖心的故事。但是,爺爺就記住了「佩奇」二字,於是開始他尋找「啥是佩奇」的故事。
  • 啥是佩奇是什麼梗 啥是佩奇為什麼這麼火
    最近在朋友圈和微博上都可以看到一個新詞——啥是佩奇,很多網友不知道佩奇因為什麼又火了一把,啥是佩奇到底是什麼梗,下面就來為大家詳細的介紹一下。《啥是佩奇》其實是部電影的宣傳片,由大電影《小豬佩奇過大年》導演張大鵬執導。
  • 《啥是佩奇》出了「續集」
    這條名為《歡迎回到粉豬村》的短片延續了《啥是佩奇》的背景,只不過從原本的故事線中跳脫出來,聚焦了曾拍攝廣告的這群村民們——這個外景地北方山村因為《啥是佩奇》一炮而紅,成為了遊客慕名而來的打卡聖地「粉豬村」,曾經的放羊大爺一邊放羊,還兼顧與遊客合影拍照的業務。
  • 佩奇刷屏!啥是佩奇?我為何甘願上當和轉發?
    連國民老公思聰和韓大才子都忍不住點讚有多服氣話不多說,看正片2019 年聽到的第一句最暖的話:啥是佩奇「佩奇是啥,字典裡該有吧」,爺爺這樣想著。但可惜的是翻閱了半天也沒找到關於「佩奇」的半點線索,只有「佩帶」...
  • 啥是佩奇,見證最質樸的親情
    今早刷微博,被一個名字叫做啥是佩奇的短視頻吸引住,佩奇,因為其可愛的形象和搞笑的生活方式備受大人和小孩的喜愛。而且是火了很久的動畫片的一個人物形象,而且今年也是豬年,佩奇估計又要火一年。在日常生活中我們可以看到很多是食品包裝袋上,很多玩偶,甚至很多吃的蛋糕等等,都是可愛的佩奇,佩奇已經融入我們的生活很久了,怎麼還會有人問啥是佩奇呢,出於好奇,我點開了視頻最開始是一個鄉村的老爺爺在電話裡期盼著親人過年回來,得知了孫子喜歡佩奇,
  • 《啥是佩奇》背後的認知差異
    這幾天,一部名為《啥是佩奇》視頻在網絡上刷屏,佔據微博熱搜,並被王思聰、任素汐等大V相繼轉發。不得不說這是一次成功的營銷案例,它本來是電影《小豬佩奇過大年》的宣傳片,這部電影將於春節檔上映。至於一直被尋找的佩奇,便是電影的主人公—一隻來自英國的小豬。
  • 「啥是佩奇」火了《小豬佩奇過大年》預售卻很冷清
    《啥是佩奇》火了,無論是朋友圈、微博熱搜還是百度搜索,這幾天「佩奇」都成了搜索的高頻詞,就連跟著蹭熱點的都能因此多獲得一些點擊量。然而,作為春節檔電影《小豬佩奇過大年》的宣傳片,《啥是佩奇》在電影促銷方面起到的「帶貨」作用卻並不明顯。
  • 《啥是佩奇》:一場城市精英主義對鄉村的虛假想像
    圖片來自短片《啥是佩奇》。 文 | 張豐 一大早就被《啥是佩奇》的短片刷屏了。 短片《啥是佩奇》。 從敘事的角度看,這個短片還是非常精巧的。在鄉村的老頭盼望兒子帶著孫子一起回家過年,電話中他問兒子,孫子想要什麼樣的禮物,答案是「佩奇」,這可難壞了這位農村老大爺,他不知道佩奇為何物,於是,就開始了「尋找佩奇」的過程。
  • 《小豬佩奇過大年》失敗了,《啥是佩奇》或許應該背鍋
    說實話,我不太信這個答案,因為「啥是佩奇」早已刷遍了微博和朋友圈。於是我追問:「《啥是佩奇》的病毒營銷非常成功,難道這樣還不足以製造10億量級的票房嗎?」對方扶了一下眼鏡,笑著說:「《啥是佩奇》完全沒用,這個營銷手段選錯了。小豬佩奇嘛,就是小孩子看到了影訊,鬧著要大人帶自己去看的。小孩子會看到《啥是佩奇》嗎?看得懂嗎?」
  • 啥是佩奇?啥是光頭強,是國產自製還是國外引進?
    《啥是佩奇》,動畫片裡粉紅色的小豬,除了這些還知道什麼,國產的、國外引進的,那光頭強、喜洋洋灰太狼這些又有哪些的呢?對於老一輩的人來說,他們僅僅需要知道這些就可以了,但對於那些正在津津有味看著動畫片的孩子父母來說,知道就有點太少了,又怎樣去和孩子更親近的交流。
  • 啥是佩奇?利其爾Richell兒童不鏽鋼餐具配齊
    原標題:啥是佩奇?利其爾Richell兒童不鏽鋼餐具配齊刷爆朋友圈的賀歲片《小豬佩奇過大年》,可謂是風頭正勁,十分適合全家觀看,寶寶們更是愛得不得了。啥是佩奇?
  • 《啥是佩奇》未帶來《小豬佩奇過大年》預售高增長
    原標題:現象級宣傳片並未帶來《小豬佩奇過大年》預售的高增長 《啥是佩奇》為何不「帶貨」?   《啥是佩奇》火了,無論是朋友圈、微博熱搜還是百度搜索,這幾天「佩奇」都成了搜索的高頻詞,就連跟著蹭熱點的都能因此多獲得一些點擊量。
  • 《啥是佩奇》導演揭秘:鐵打小豬如何刷爆朋友圈?
    《啥是佩奇》導演揭秘:鐵打小豬如何刷爆朋友圈? 原標題:   中新網客戶端北京1月18日電 題:《啥是佩奇》導演揭秘幕後:「鐵打小豬」如何刷爆朋友圈?
  • 啥是佩奇是什麼廣告導演張大鵬是誰 小豬佩奇過大年宣傳片
    啥是佩奇是什麼廣告?今天啥是佩奇這個視頻在朋友圈刷屏了,沒想到這竟然是個廣告,真硬核!下面小編就給大家說下啥是佩奇是什麼的廣告,還有介紹下這部廣告片的導演。  啥是佩奇是什麼廣告導演張大鵬是誰  《啥是佩奇》這部廣告片在豬年還沒有到的時候,結結實實地刷了我們的屏。導演張大鵬,也是《小豬佩奇過大年》一片的導演。
  • 網店自稱提供《啥是佩奇》鼓風機原型 攝製方:我們自製的
    《啥是佩奇》視頻截圖1月18日,隨著《小豬佩奇過大年》的預告片《啥是佩奇》的上映和迅速走紅,片中爺爺為孫子自製的「鼓風機佩奇」引來大量網友的追捧。記者發現,鹹魚等線上交易網站迅速上線一批「電影同款佩奇」,並賣出高價。
  • 2019年史上最感人最催人淚下的老大爺,《啥是佩奇》
    「佩奇是啥,字典裡該有吧」老漢這樣想著。但可惜的是翻閱了半天也沒找到關於「佩奇」的半點線索,倒是有配種。。。   黃土高原   離兒子約定好回來的日子越來越近了,老漢也一直在用他所知道的方法去打聽「佩奇」到底是啥,因為他孫子說想要佩奇,別說還真被他找到了
  • 在《啥是佩奇》之前,《小豬佩奇》本就自帶「城裡人的高貴」
    2019年1月6日,賀歲動畫電影《小豬佩奇過大年》的官方微博發布了微電影預告片《啥是佩奇》。一天之內,在多個流量平臺的推動下,這個短片迅速躥紅,引發熱烈討論。《啥是佩奇》劇照。導演張大鵬別出心裁地用一個5分40秒的微電影《啥是佩奇》取代了常規預告片進行電影的前期宣傳。影片以幼兒對「小豬佩奇」的廣泛喜愛為背景,講述了生活在農村的爺爺聽說城裡的孫子過年想要「佩奇」做禮物,於是到處打聽什麼是佩奇,經過一系列誤認,終於用鼓風機親手焊制了一個「工業朋克風」佩奇,進城過團圓年送到孫子手裡的故事。
  • 回訪《啥是佩奇》拍攝地:村裡變整潔,爺爺扮演者盼團圓
    《啥是佩奇》取景地。新京報記者 寇家祥 攝新京報訊(記者 寇家祥 倪兆中 吳榮奎)賀歲短片《啥是佩奇》走紅一年後,新京報記者近日重新走訪該片拍攝地,河北張家口懷來縣外井溝村。在短片《啥是佩奇》中,主人公聽說佩奇是一頭紅豬時,一度欲將一頭小花豬染紅。新京報記者探訪發現,片中的小花豬已經當了媽媽,即將產下第二胎小豬。取景地的居民告訴新京報記者,去年養了五十多頭豬,今年又新增了二三十頭豬,不過由於擔心豬瘟,《啥是佩奇》續集並未在豬棚拍攝。
  • 啥是佩奇刷屏:導演在張家口花兩天拍攝,帶紅小豬佩奇概念股
    春節檔電影《小豬佩奇過大年》的預熱宣傳片《啥是佩奇》刷屏了。這支5分多鐘的短片,講述了農村老人為孫子準備禮物的故事,圍繞「啥是佩奇」,老爺爺四處打聽,經歷波折,最終在家人團聚時,掏出了給孫子的禮物:純手工製作粉紅色鼓風機硬核版小豬佩奇。