etcd:用於服務發現的鍵值存儲系統 - OSCHINA - 中文開源技術交流...

2020-12-16 開源中國

etcd是一個高可用的鍵值存儲系統,主要用於共享配置和服務發現。etcd是由CoreOS開發並維護的,靈感來自於 ZooKeeper 和 Doozer,它使用Go語言編寫,並通過Raft一致性算法處理日誌複製以保證強一致性。Raft是一個來自Stanford的新的一致性算法,適用於分布式系統的日誌複製,Raft通過選舉的方式來實現一致性,在Raft中,任何一個節點都可能成為Leader。Google的容器集群管理系統Kubernetes、開源PaaS平臺Cloud Foundry和CoreOS的Fleet都廣泛使用了etcd。

在分布式系統中,如何管理節點間的狀態一直是一個難題,etcd像是專門為集群環境的服務發現和註冊而設計,它提供了數據TTL失效、數據改變監視、多值、目錄監聽、分布式鎖原子操作等功能,可以方便的跟蹤並管理集群節點的狀態。etcd目前的版本是0.4.5,雖然未發布1.0版本(今年會發布),但其已經使用在多個生產系統中,可見其火熱程度。etcd的特性如下:

etcd是CoreOS的核心組件,負責節點間的服務發現和配置共享,運行在CoreOS中的應用可以通過etcd讀取或者寫入數據。雖然etcd是為CoreOS而設計,但其可以運行在多個平臺上,包括 OS X、Linux、BSD。

Jason Wilder的一篇博客對常見的服務發現開源項目Zookeeper、Doozer、etcd進行了介紹:

Zookeeper是一個用戶維護配置信息、命名、分布式同步以及分組服務的集中式服務框架,它使用Java語言編寫,通過Zab協議來保證節點的一致性。因為Zookeeper是一個CP型系統,所以當網絡分區問題發生時,系統就不能註冊或查找服務。

Doozer是一個一致性的、分布式存儲系統,使用Go語言編寫,通過Paxos來保證強一致性,Doozer項目目前已經停止更新並有將近160個分支。和Zookeeper一樣,Doozer也是一個CP型系統,在網絡分區問題發生時,會有同樣的問題。

etcd是一個用於共享配置和服務發現的高可用的鍵值存儲系統,使用Go語言編寫,通過Raft來保證一致性,有基於HTTP+JSON的API接口。etcd也是一個強一致性系統,但是etcd似乎支持從non-leaders中讀取數據以提高可用性;另外,寫操作仍然需要leader的支持,所以在網絡分區時,寫操作仍可能失敗。

目前有很多支持etcd的庫和工具,比如命令行客戶端工具etcdctl、Go客戶端go-etcd、Java客戶端jetcd。關於etcd的使用和安裝讀者可以參考官方文檔。

via InfoQ

相關焦點

  • Netflix 的開源文化與技術 - OSCHINA - 中文開源技術交流社區
    Netflix利用開源或者自己開發的技術,讓公司能夠在分布於全世界50多個國家的伺服器上進行持續地構建和集成;能夠對用戶所產生的海量行為數據進行分析挖掘從而更好地推薦和改善自身服務;同時能夠通過性能剖析和安全審計保護用戶的隱私和數據,下面就讓我們來盤點一下Netflix所使用或貢獻的開源技術。
  • Delta Lake 進入 Linux 基金會 - OSCHINA - 中文開源技術交流社區
    Delta Lake 是一個存儲層,為 Apache Spark 和大數據 workloads 提供 ACID 事務能力,其通過寫和快照隔離之間的樂觀並發控制(optimistic concurrency control),在寫入數據期間提供一致性的讀取,從而為構建在 HDFS 和雲存儲上的數據湖帶來可靠性。
  • TiKV 成功晉級 CNCF 孵化項目 - OSCHINA - 中文開源技術交流社區
    TiKV 是一個開源的分布式事務 Key-Value 資料庫,支持跨行 ACID 事務,同時實現了自動水平伸縮、數據強一致性、跨數據中心高可用和雲原生等重要特性,最初由 PingCAP 團隊在 2016 年作為 TiDB 的底層存儲引擎設計並開發,於 2018 年 8 月被 CNCF 宣布接納為 CNCF 沙箱雲原生項目。
  • 開源軟體蓄勢待發 - OSCHINA - 中文開源技術交流社區
    Cloudera公司傾向於讓Apache軟體基金會所研發的Hadoop分布式計算開源框架更便於使用,為更多的用戶所採用。強大的Hadoop技術被認為是一種管理和存儲大量數據的低成本高效率措施。美國雅虎是這一開源項目的是了大資助者,該技術也被Facebook和谷歌所採用。
  • Etcd 架構與實現解析
    所有的分布式系統,都面臨的一個問題是多個節點之間的數據共享問題,這個和團隊協作的道理是一樣的,成員可以分頭幹活,但總是需要共享一些必須的信息,比如誰是 leader, 都有哪些成員,依賴任務之間的順序協調等。所以分布式系統要麼自己實現一個可靠的共享存儲來同步信息(比如 Elasticsearch ),要麼依賴一個可靠的共享存儲服務,而 Etcd 就是這樣一個服務。
  • FineUI(開源版)v4.2.0 發布了! - OSCHINA - 中文開源技術交流社區
    原始碼已經託管到OSC:http://git.oschina.net/sanshi/FineUI FineUI
  • TiKV 4.0 發布,分布式 K-V 資料庫 - OSCHINA - 中文開源技術交流...
    TiKV 是一個開源的分布式事務 Key-Value 資料庫,支持跨行 ACID 事務,同時實現了自動水平伸縮、數據強一致性、跨數據中心高可用和雲原生等重要特性。Follower read通過Follower read,TiKV使用一系列負載平衡機制將從Raft leader的讀取請求卸載給它的follower。
  • etcd 的性能怎麼樣?需要優化嗎?
    關注「Go語言中文網」公眾號,回復關鍵詞「入門」,即可下載從零入門 K8s 系列文章 PPT。導讀:etcd 是容器雲平臺用於存儲關鍵元信息的組件。阿里巴巴使用 etcd 已經有 3 年的歷史, 在今年 雙11 過程中它又一次承擔了關鍵角色,接受了 雙11 大壓力的檢驗。
  • 開源雲計算市場份額正在上升 - OSCHINA - 中文開源技術交流社區
    雲計算具備轉變政府機構接入IT服務方式的潛力,而開源是政府早期配置的幾種雲採用的基礎技術。
  • GitHub 上那些值得一試的 Java 開源庫 - OSCHINA - 中文開源技術...
    除了這些,你可能還會fork或Star一些其他的開源庫,但GitHub上的庫實在太多了,以至於對於個人來說,你很難有時間去發現並了解那些不斷加入的新庫,而它們卻往往能在一些新興領域中給你提供幫助。我一直使用JAVA來寫後端應用,平時也會關注一些國外技術大牛的博客(來自Tapki、DZone、Google Developer等技術博客),從而注意到了一些新的而且很有意思Java開源庫,它們有些能給你的項目帶來幫助,有些是以遊戲的形式幫你提高Java的編程水平,而另一些則能夠幫助你識別JAVA程序中的常見問題 。
  • Git 2.4.3 發布 - OSCHINA - 中文開源技術交流社區
    Git是一個開源的分布式版本控制系統,用以有效、高速的處理從很小到非常大的項目版本管理。開源中國 Git 代碼託管平臺:http://git.oschina.net/Windows下的Git請看這裡:http://www.oschina.net/p/msysgitGit 是 Linus Torvalds 為了幫助管理 Linux 內核開發而開發的一個開放源碼的版本控制軟體
  • Hutool 2.16.0 發布,Java 工具集 - OSCHINA - 中文開源技術交流社區
    新特性Conver類變為Convert類增加Holder接口抽象BeanUtil.copyProperties,支持更多選項DruidDS增加系統關閉的鉤子增加CollectionUtil中isEmpty
  • - OSCHINA - 中文開源技術交流...
    甲骨文對SUN的技術做出了一些常識性的調整,比如將SUN的硬體與Exalogic Elastic Cloud系統中的甲骨文中間件搭配使用。不過甲骨文的行為對開源領域造成了一些影響,比如Hudson持續性綜合伺服器和Java本身就引起了爭議。
  • 8 個基於 Lucene 的開源搜尋引擎 - OSCHINA - 中文開源技術交流社區
    http://lucene.apache.org/solr/  Elastic Search ElasticSearch是一個基於Lucene構建的開源,分布式,RESTful搜尋引擎。設計用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。支持通過HTTP使用JSON進行數據索引。
  • F5 收購 NGINX - OSCHINA - 中文開源技術交流社區
    F5 是應用交付網絡(ADN)領域的全球領先廠商,其解決方案有助於整合不同的技術,以便更好地控制基礎架構,提高應用交付和數據管理能力,並使用戶能夠通過企業桌面系統和智能設備無縫、安全並更快速地接入應用。
  • 納德拉時代下的微軟開源之路 - OSCHINA - 中文開源技術交流社區
    Office 365日前微軟開源技術團隊正式宣布,微軟旗下的Offcie 365服務將會被集成到開源教育平臺Open edx中。微軟官方對此表示:「無論是當地小學的四年級小學生,還是一位40歲每夜堅持攻讀MBA的求學者,亦或者是準備參與升職培訓的公司職員,現在都有機會享受到Open edx帶來的學習管理系統(LMS)和大規模在線課堂(MOOC)。」
  • 5款開源雲計算平臺推薦 - OSCHINA - 中文開源技術交流社區
    我們熟知的幾個IT巨頭的雲計算平臺,如亞馬遜EC 2、IBM的藍雲、微軟的Azure、Sun Cloud等,那麼開源雲計算的平臺又有哪些呢?以下列舉了開源中國社區收錄的5款知名的開源雲計算平臺。1、AbiCloud企業級開源雲計算平臺Abiquo公司推出的一款開源的雲計算平臺——「abiCloud」,使公司能夠以快速、簡單和可擴展的方式創建和管理大型、複雜的IT基礎設施 (包括虛擬伺服器,網絡,應用,存儲設備等等)。AbiCloud較之同類其他產品的一個主要的區別在於其強大的Web界面管理。
  • 根據您的需要選擇最佳 PaaS 雲 - OSCHINA - 中文開源技術交流社區
    Memcached 服務為應用程式提供了一個內存鍵值對緩存,可供多個應用程式實例訪問。不對臨時數據使用持久性和事務性特性將會很有用,比如在本地緩存數據存儲,以實現高速訪問。 調度任務。cron 服務允許用戶調度按固定時間間隔運行的任務,例如,每天或每小時運行一次。
  • 火星探測器軟體的開源庫被惡意利用 - OSCHINA - 中文開源技術交流...
    FreeBuf 百科:OpenCV 與 OpenALOpenCV是一個基於BSD許可(開源)發行的跨平臺計算機視覺庫,可以運行在Linux、Windows和Mac OS作業系統上。這兩者都曾被用於著名的火星探測機器人,尤其opencv的應用領域相當廣泛,人機互動、物體識別、圖像分割、人臉識別、動作識別、運動跟蹤、機器人、運動分析、機器視覺、結構分析、汽車安全駕駛等等。
  • JavaFX 2012:徹底開源 - OSCHINA - 中文開源技術交流社區
    其中將JavaFX完全開源赫列榜首——在2011年的JavaOne大會上,Oracle已做出保證將開源整個JavaFX平臺。 以下是Richard Bair列出的2012年JavaFX 10大目標: 1.