偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

分布式日志存儲(chǔ)系統(tǒng)-LogDevice

存儲(chǔ) 存儲(chǔ)軟件 分布式
做過(guò)分布式系統(tǒng)的人都知道,想要在大規(guī)模集群下處理高并發(fā)事務(wù)時(shí)同時(shí)滿(mǎn)足CAP(一致性、可用性、分區(qū)容錯(cuò)),從理論上來(lái)說(shuō)不可能,當(dāng)然聽(tīng)說(shuō)最近谷歌已經(jīng)實(shí)現(xiàn)了這樣的分布式系統(tǒng),但是總的來(lái)說(shuō)確實(shí)非常難。

 寫(xiě)在前面

做過(guò)分布式系統(tǒng)的人都知道,想要在大規(guī)模集群下處理高并發(fā)事務(wù)時(shí)同時(shí)滿(mǎn)足CAP(一致性、可用性、分區(qū)容錯(cuò)),從理論上來(lái)說(shuō)不可能,當(dāng)然聽(tīng)說(shuō)最近谷歌已經(jīng)實(shí)現(xiàn)了這樣的分布式系統(tǒng),但是總的來(lái)說(shuō)確實(shí)非常難。對(duì)于社交媒體的海量日志文件,如果我們也提出了需要確保高可用、持續(xù)寫(xiě)入數(shù)據(jù)、按照記錄順序返回?cái)?shù)據(jù)等三條要求,你覺(jué)得是否可以實(shí)現(xiàn)?FaceBook的LogDevice實(shí)現(xiàn)了。

[[206398]]

什么是日志

日志是記錄一系列序列化的系統(tǒng)行為的信息,我們需要確保它們能夠被保存在可靠的地方。對(duì)于應(yīng)用程序來(lái)說(shuō),日志的作用一般有兩個(gè),即Troubleshooting和顯示程序運(yùn)行狀態(tài)。好的日志記錄方式可以提供我們足夠多定位問(wèn)題的依據(jù)。對(duì)于一些復(fù)雜系統(tǒng),例如數(shù)據(jù)庫(kù),日志可以承擔(dān)數(shù)據(jù)備份、同步作用,很多分布式數(shù)據(jù)庫(kù)都采用“write-ahead”方案,在節(jié)點(diǎn)數(shù)據(jù)同步時(shí)通過(guò)日志文件恢復(fù)數(shù)據(jù)。

日志一般具有三個(gè)特性:

1、面向記錄:寫(xiě)入日志的一定是孤立的行,而不是一個(gè)字節(jié)。日志實(shí)質(zhì)上是問(wèn)題的最小單元,用戶(hù)也一定是讀取整行日志。日志的存儲(chǔ)原則上按照順序,即按照LSN(日志順序數(shù)字)存放,但是也不完全這么要求,所以日志系統(tǒng)可以?xún)?yōu)先高寫(xiě)入需求,對(duì)寫(xiě)入失敗容錯(cuò)。

2、日志天生就是遞增的:也就是說(shuō),日志是不會(huì)修改的,那么也就意味著,日志系統(tǒng)的設(shè)計(jì)應(yīng)該是以高寫(xiě)入、高讀取為目標(biāo),不需要擔(dān)心更新操作的數(shù)據(jù)一致性問(wèn)題。

3、日志存儲(chǔ)周期長(zhǎng):可能是一天,也可能是一個(gè)月,甚至于一年。這也就意味著,日志的刪除規(guī)則一般都是按照時(shí)間或者空間進(jìn)行設(shè)定的,具有固定的規(guī)則。

來(lái)個(gè)假如

假如我們要設(shè)計(jì)一個(gè)分布式日志存儲(chǔ)系統(tǒng),你會(huì)怎么設(shè)計(jì)?

日志信息需要傳輸、存儲(chǔ),為了實(shí)現(xiàn)穩(wěn)定的數(shù)據(jù)交換,我們可以采用Kafka作為消息中間件。

Kafka實(shí)際上是一個(gè)消息發(fā)布訂閱系統(tǒng)。

Producer向某個(gè)Topic發(fā)布消息,而Consumer訂閱某個(gè)Topic的消息,進(jìn)而一旦有新的關(guān)于某個(gè)Topic的消息,Broker會(huì)傳遞給訂閱它的所有Consumer。在Kafka中,消息是按Topic組織的,而每個(gè)Topic又會(huì)分為多個(gè)Partition,這樣便于管理數(shù)據(jù)和進(jìn)行負(fù)載均衡。同時(shí),它也使用了Zookeeper進(jìn)行負(fù)載均衡。

Kafka在磁盤(pán)上的存取代價(jià)為O(1),即便是普通服務(wù)器,每秒也能處理幾十萬(wàn)條消息,并且它本身就是分布式架構(gòu),也支持將數(shù)據(jù)并行加載到Hadoop。

上面這張圖是一個(gè)典型的采用消息中間件進(jìn)行日志數(shù)據(jù)交換的系統(tǒng)設(shè)計(jì)架構(gòu),但是沒(méi)有實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),也沒(méi)有描述數(shù)據(jù)是如何被抽取并發(fā)送到Kafka的。

如果想要實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ),并描述清楚內(nèi)部處理流程,我們可以采用怎么樣的日志處理系統(tǒng)架構(gòu)呢?這里推薦你FaceBook的Scribe,它是一款開(kāi)源的日志收集系統(tǒng),在Facebook內(nèi)部已經(jīng)得到大量的應(yīng)用。它能夠從各種日志源上收集日志,存儲(chǔ)到一個(gè)中央存儲(chǔ)系統(tǒng) (可以是NFS,分布式文件系統(tǒng)等)上,以便于進(jìn)行集中統(tǒng)計(jì)分析處理。

Scribe最重要的特點(diǎn)是容錯(cuò)性好。當(dāng)后端的存儲(chǔ)系統(tǒng)奔潰時(shí),Scribe會(huì)將數(shù)據(jù)寫(xiě)到本地磁盤(pán)上,當(dāng)存儲(chǔ)系統(tǒng)恢復(fù)正常后,Scribe將日志重新加載到存儲(chǔ)系統(tǒng)中。

Scribe的架構(gòu)比較簡(jiǎn)單,主要包括三部分,分別為Scribe Agent, Scribe和存儲(chǔ)系統(tǒng)。Scribe Agent實(shí)際上是一個(gè)Thrift Client。Scribe接收到Thrift Client發(fā)送過(guò)來(lái)的數(shù)據(jù),根據(jù)配置文件,將不同topic的數(shù)據(jù)發(fā)送給不同的對(duì)象。存儲(chǔ)系統(tǒng)實(shí)際上就是Scribe中的Store,當(dāng)前Scribe支持非常多的Store。

貌似市面上已經(jīng)有很多分布式日志收集系統(tǒng)了,為什么FaceBook還需要推出LogDevice呢?而且FaceBook自己已經(jīng)有了Scribe,為什么還要繼續(xù)設(shè)計(jì)LogDevice?因?yàn)镾cribe更多實(shí)現(xiàn)了日志數(shù)據(jù)的收集,它不是一個(gè)完整的日志處理、存儲(chǔ)、讀取服務(wù),系統(tǒng)設(shè)計(jì)也較為死板,存儲(chǔ)更多依賴(lài)HDFS,使用過(guò)程中一定出現(xiàn)了不能滿(mǎn)足自身需求的情況。而對(duì)于開(kāi)源的哪些分布式日志收集系統(tǒng),更多的是集成各個(gè)開(kāi)源組件,共同完成日志存儲(chǔ)系統(tǒng)設(shè)計(jì)需求。對(duì)于FaceBook的工程師來(lái)說(shuō),他們一貫秉承著用于創(chuàng)新的精神,想想Apache Cassandra,其實(shí)當(dāng)時(shí)已經(jīng)有HBase等成熟的NoSQL數(shù)據(jù)庫(kù),但是由于存在中心節(jié)點(diǎn)等諸多設(shè)計(jì)上的限制,F(xiàn)aceBook自己搞了一個(gè)全新的無(wú)中心化設(shè)計(jì)的架構(gòu),即便在初期飽受質(zhì)疑,后續(xù)也在不斷地改進(jìn),到目前為止,Cassandra真正進(jìn)入到了它的黃金時(shí)代。

責(zé)任編輯:武曉燕 來(lái)源: 麥克叔叔每晚10點(diǎn)說(shuō)
相關(guān)推薦

2017-04-14 09:48:25

分布式存儲(chǔ)系統(tǒng)

2018-09-29 14:08:04

存儲(chǔ)系統(tǒng)分布式

2017-07-18 09:51:36

文件存儲(chǔ)系統(tǒng)

2017-10-17 08:33:31

存儲(chǔ)系統(tǒng)分布式

2017-12-18 10:47:04

分布式存儲(chǔ)數(shù)據(jù)

2017-10-19 08:45:15

存儲(chǔ)系統(tǒng)HBase

2017-10-12 09:36:54

分布式存儲(chǔ)系統(tǒng)

2018-11-20 09:19:58

存儲(chǔ)系統(tǒng)雪崩效應(yīng)

2018-05-10 09:34:21

spark存儲(chǔ)系統(tǒng)

2019-05-13 15:20:42

存儲(chǔ)系統(tǒng)算法

2019-10-15 10:59:43

分布式存儲(chǔ)系統(tǒng)

2021-07-04 07:07:06

Ceph分布式存儲(chǔ)架構(gòu)

2021-08-07 05:00:20

存儲(chǔ)系統(tǒng)

2013-12-27 10:56:42

分布式對(duì)象存儲(chǔ)Sheepdog性能測(cè)試

2018-03-13 08:45:08

存儲(chǔ)系統(tǒng)DHT算法

2018-10-29 12:42:23

Ceph分布式存儲(chǔ)

2014-02-19 11:37:57

分布式對(duì)象存儲(chǔ)Sheepdog

2010-07-02 10:08:12

BigtableGoogle

2025-01-26 11:54:39

分布式存儲(chǔ)系統(tǒng)

2019-07-05 15:01:32

區(qū)塊鏈系統(tǒng)分布式存儲(chǔ)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)