1. 程式人生 > >《Linkerd官方文件》Linkerd是什麼?

《Linkerd官方文件》Linkerd是什麼?

什麼是Linkerd?

Linkerd是一款開源網路代理,旨在作為服務網格進行部署:用於在應用程式內管理,控制和監視服務到服務通訊的專用層。

它解決了什麼問題?

Linkerd的建立是為了解決我們在Twitter,雅虎,谷歌和微軟等公司運營大型生產系統時遇到的問題。根據我們的經驗,最複雜,最令人驚訝和緊急行為的來源通常不是服務本身,而是服務之間的通訊。Linkerd解決了這些問題,不僅僅是通過控制這種通訊的機制,而是通過在其上提供一個抽象層。

LINKERD為現有應用增加了可靠性和儀器。 通過提供跨服務的一致統一的儀器和控制層,Linkerd免費服務所有者選擇最適合其服務的語言。通過將通訊機制與應用程式程式碼分離,Linkerd允許您在不改變應用程式本身的情況下檢視和控制這些機制。

今天,世界各地的公司都在使用Linkerd來生產軟體基礎架構。Linkerd負責處理跨服務通訊中的困難,容易出錯的部分 – 包括延遲感知負載平衡,連線池,TLS,工具和請求級別路由 – 以使應用程式程式碼具有可擴充套件性,效能和彈性。

我如何使用它?

Linkerd作為單獨的獨立代理執行。因此,它不依賴於特定的語言或庫。應用程式通常通過在已知位置執行例項並通過這些例項代理呼叫來使用Linkerd,即不直接連線到目標,而是將服務連線到其相應的Linkerd例項,並將這些例項視為目標服務。

在hood下,Linkerd應用路由規則,與現有的服務發現機制進行通訊,並在目標例項上進行負載均衡 – 所有這些工作都在測量通訊和報告指標。通過推遲呼叫Linkerd的機制,應用程式程式碼與以下內容分離:

  1. 生產拓撲知識;
  2. 有關服務發現機制的知識;
  3. 負載均衡和連線管理邏輯。

應用也受益於一致的全球流量控制機制。這對於多語言應用程式來說尤其重要,對於這種應用程式來說,通過庫很難獲得這種一致性。

Linkerd例項可以部署為sidecars(即:每個應用程式服務例項對應一個例項)或每個主機。由於Linkerd例項是無狀態和獨立的,因此它們可以輕鬆地放入現有的部署拓撲中。它們可以與各種配置的應用程式程式碼一起部署,並且協調性最低。