主頁 > 資料庫 > 1、etcd基礎介紹

1、etcd基礎介紹

2023-05-04 08:13:46 資料庫

互聯網技術發展真的快,層出不窮的新技術,最近專案使用到了etcd,自己之前在部署k8s集群的時候玩過,但是并沒有系統的學習,正好趁這個機會,系統性的學習下,文章中的內容有些是來自官方檔案,有些是來自網上的資料,有些是自己的思考,如果有不錯的地方,請不吝賜教,大家有好的教程,也歡迎評論區留言,學習學習,感謝感謝!

這一系列文章是etcd的入門教程,并不是深入的教程,適合像我這種對 etcd 了解不深入或者完全不了解的同學,大牛請繞道,

1、什么是etcd

etcd官網

etcd-github地址

對于 etcd 的定義,我們來看一看官方是如何描述的,描述如下:A distributed, reliable key-value store for the most critical data of a distributed system,翻譯過來就是:一個分布式、可靠的鍵值存盤系統,用于存盤分布式系統中最關鍵的資料,

對于上面這句話,我們可以提取出來幾個關鍵詞,分布式、可靠的、鍵值存盤系統、最關鍵的資料,對于在互聯網行業待過一段時間的同學,應該對前面三個詞比較熟悉,最后一個最關鍵的資料如何理解呢?我說說自己的理解,

etcd 中存盤的是這個分布式系統中最重要的資料,例如配置資訊、元資料等,這些資料對于整個分布式系統而言是至關重要的,一旦出現問題,就可能導致系統出現故障或者問題,

通過上面,我們知道了 etcd 是分布式系統中的基礎設施,為分布式系統提供了可靠的資料存盤和管理能力,它是由CoreOS開發的,k8s 中的資訊就是存盤在 etcd 中,是 k8s 集群管理工具的核心組件之一,

etcd采用 Raft一致性演算法來保證資料的一致性和可靠性,支持多節點部署,可以容忍節點故障和網路磁區等故障情況,etcd的使用非常廣泛,除了作為 k8s 的核心組件之一,還可以用于服務發現、配置管理、分布式鎖等場景,etcd提供了簡單易用的API,支持多種語言的客戶端,可以方便地集成到各種應用中,

2、etcd的應用場景

通過上面的了解,感覺 etcd 還是挺牛逼的,那 etcd的應用場景一般在那些地方呢?

  • 服務發現:etcd可以存盤服務的地址和埠資訊,例如Web服務、資料庫服務等,客戶端可以通過etcd API查詢服務的地址和埠資訊,從而實作服務發現和負載均衡,

  • 分布式鎖:etcd可以實作分布式鎖,多個行程可以通過etcd API競爭鎖資源,從而實作分布式同步和協調,

  • 集群管理:etcd可以存盤集群的狀態資訊,例如節點狀態、領導者選舉結果等,應用程式可以通過etcd API查詢集群狀態資訊,從而實作集群管理和監控,

  • 分布式任務調度:etcd可以存盤任務的狀態資訊,例如任務的執行狀態、執行結果等,應用程式可以通過etcd API查詢任務狀態資訊,從而實作分布式任務調度和監控,

  • 配置管理:etcd可以存盤應用程式的配置資訊,例如資料庫連接資訊、日志級別、快取大小等,應用程式可以通過etcd API讀取這些配置資訊,從而實作動態配置管理,

  • 容器編排:k8s中集群管理的核心組件之一就是etcd,

上面是 etcd 的一些常用的場景,等大家熟悉 etcd 后,可以根據自己的實際需求,來選擇是否需要使用到 etcd 這個組件,

3、為什么使用etcd

下面再來說說 etcd 的優點,這樣跟同事吹牛的時候或者面試的時候,可以吹一吹,哈哈!

  • 可靠性:etcd采用Raft演算法實作分布式一致性,保證資料的可靠性和一致性,
  • 高可用性:etcd支持多節點部署,節點之間通過Raft協議進行資料同步和選舉,保證系統的高可用性,
  • 靈活性:etcd提供了RESTful API和gRPC API,可以方便地與各種編程語言進行互動,
  • 安全性:etcd支持TLS加密和訪問控制,可以保證資料的安全性,
  • 可擴展性:etcd支持水平擴展,可以通過添加更多的節點來提高系統的性能和容量,

4、etcd架構圖

上圖是 etcd 基礎架構圖,按照分層模型,etcd可分為Client層、API網路層、Raft演算法層、邏輯層和存盤層,這些層的功能如下:

  • Client層:Client層包括client v2 和v3兩個大版本API客戶端,提供了簡介易用的API,同時支持負載均衡、節點間故障自動轉移,可極大降低業務使用etcd復雜度,提升開發效率、增強服務的可用性,

  • API網路層:API網路層主要包括client訪問server和server節點之間的通信協議,一方面,client訪問etcd server 的API分為V2和V3兩大版本,V2 API使用http/1.x協議,v3 API使用gRPC協議,同時v3通過etcd grpc-gateway 組件也支持 http/1.x 協議,便于各種語言的服務呼叫,另一方面,server之間通信協議,是指節點間通過Raft演算法實作資料復制和Leader選舉等功能時使用的HTTP協議,

  • Raft演算法層:Raft演算法層實作了Leader選舉、日志復制、ReadIndex等核心演算法特性,用于保障etcd多個節點間的資料一致性,提升服務可用性等,是etcd的基石,

  • 邏輯層:etcd核心特性實作層,如典型的KVserver模塊、MVCC模塊、Auth鑒權模塊、Lease租約模塊、Compactor壓縮模塊等,其中MVCC模塊主要由treeIndex模塊和boltdb模塊組成,

  • 存盤層:存盤層包含預習日志(WAL)模塊、快照(Snapshot)模塊、boltdb模塊,其中WAL可保障etcd crash后資料不丟失,boltdb則保存了集群元資料和用戶寫入資料,

參考資料:

bilibili視頻教程

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/551580.html

標籤:NoSQL

上一篇:【必知必會的MySQL知識】④DCL語言

下一篇:返回列表

標籤雲
其他(158383) Python(38110) JavaScript(25399) Java(18011) C(15221) 區塊鏈(8261) C#(7972) AI(7469) 爪哇(7425) MySQL(7157) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5870) 数组(5741) R(5409) Linux(5334) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4565) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2432) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1964) Web開發(1951) HtmlCss(1931) python-3.x(1918) 弹簧靴(1913) C++(1912) xml(1889) PostgreSQL(1874) .NETCore(1857) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • 1、etcd基礎介紹

    互聯網技術發展真的快,層出不窮的新技術。最近專案使用到了etcd,自己之前在部署k8s集群的時候玩過,但是并沒有系統的學習。正好趁這個機會,系統性的學習下。文章中的內容有些是來自官方檔案,有些是來自網上的資料,有些是自己的思考。如果有不錯的地方,請不吝賜教,大家有好的教程,也歡迎評論區留言,學習學習 ......

    uj5u.com 2023-05-04 08:13:46 more
  • 【必知必會的MySQL知識】④DCL語言

    (DCL語言) 一、概述 資料控制語言,用來定義訪問權限和安全級別。主要包含包括grant,revoke 關鍵字 grant 授予權限 revoke 回收權限 二 、授權 2.1 語法格式 GRANT priv_type [(column_list)] [, priv_type [(column_l ......

    uj5u.com 2023-05-04 08:12:08 more
  • Oracle ORA-01033: ORACLE initialization or shutdown in progr

    先宣告一下前期的一些手欠欠兒的操作導致oracl登錄不進去了,起先是清理磁盤空間的時候誤洗掉了orcle DBF資料檔案后無法進入系統,plsql登錄報錯如下: 一般情況下,洗掉表空間的正確方法是:DROP TABLESPACE BDCDJ INCLUDING CONTENTS AND DATAFI ......

    uj5u.com 2023-05-03 08:07:56 more
  • 【必知必會的MySQL知識】③DML語言

    (DML語言) 前言 前面的兩篇文章中,我們已經對MySQL有了基本了解。 并且知道了怎么用工具連接資料庫?怎么創建資料庫?怎么創建表? 這一篇呢我們就來看看怎么在我們創建的表中插入資料、洗掉資料和修改資料。也就是上一篇文章中提到的DML 資料操作語言 準備 根據上一章所說的,我們創建一個db_xi ......

    uj5u.com 2023-05-03 08:02:31 more
  • day09-達人探店

    功能04-達人探店 5.功能04-達人探店 5.1發布&查看探店筆記 5.1.1發布探店筆記 探店筆記類似點評網站的評價,往往是圖文結合。對應的表有兩個: tb_blog:探店筆記表,包含筆記中的標題、文字、圖片等 tb_blog_comments:其他用戶對探店筆記的評價 /*表: tb_blog ......

    uj5u.com 2023-05-03 07:55:37 more
  • 【必知必會的MySQL知識】②使用MySQL

    (使用MySQL) 前言 根據上一篇文章【必知必會的MySQL知識】①初探MySQL的內容,想必您對MySQL資料庫有了一個整體的了解了,并且應該在自己電腦上已經安裝上了MySQL。 這一篇呢我們來說一說這么連接上資料庫并且使用它。 啟動MySQL服務 前面MySQL安裝的文章手把手教你安裝MySQ ......

    uj5u.com 2023-05-03 07:54:50 more
  • Oracle ORA-01033: ORACLE initialization or shutdown in progr

    先宣告一下前期的一些手欠欠兒的操作導致oracl登錄不進去了,起先是清理磁盤空間的時候誤洗掉了orcle DBF資料檔案后無法進入系統,plsql登錄報錯如下: 一般情況下,洗掉表空間的正確方法是:DROP TABLESPACE BDCDJ INCLUDING CONTENTS AND DATAFI ......

    uj5u.com 2023-05-03 07:53:55 more
  • day09-達人探店

    功能04-達人探店 5.功能04-達人探店 5.1發布&查看探店筆記 5.1.1發布探店筆記 探店筆記類似點評網站的評價,往往是圖文結合。對應的表有兩個: tb_blog:探店筆記表,包含筆記中的標題、文字、圖片等 tb_blog_comments:其他用戶對探店筆記的評價 /*表: tb_blog ......

    uj5u.com 2023-05-03 07:53:05 more
  • 【必知必會的MySQL知識】③DML語言

    (DML語言) 前言 前面的兩篇文章中,我們已經對MySQL有了基本了解。 并且知道了怎么用工具連接資料庫?怎么創建資料庫?怎么創建表? 這一篇呢我們就來看看怎么在我們創建的表中插入資料、洗掉資料和修改資料。也就是上一篇文章中提到的DML 資料操作語言 準備 根據上一章所說的,我們創建一個db_xi ......

    uj5u.com 2023-05-03 07:52:14 more
  • 【必知必會的MySQL知識】②使用MySQL

    (使用MySQL) 前言 根據上一篇文章【必知必會的MySQL知識】①初探MySQL的內容,想必您對MySQL資料庫有了一個整體的了解了,并且應該在自己電腦上已經安裝上了MySQL。 這一篇呢我們來說一說這么連接上資料庫并且使用它。 啟動MySQL服務 前面MySQL安裝的文章手把手教你安裝MySQ ......

    uj5u.com 2023-05-03 07:46:13 more