小編給大家分享一下有哪些分布式數(shù)據(jù)庫(kù),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)從2013年開(kāi)始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都做網(wǎng)站、網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元寶豐做網(wǎng)站,已為上家服務(wù),為寶豐各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220
分布式數(shù)據(jù)庫(kù)有:1、Elasticsearch數(shù)據(jù)庫(kù),可以存在單個(gè)節(jié)點(diǎn)或多個(gè)節(jié)點(diǎn);2、redis數(shù)據(jù)庫(kù),支持豐富數(shù)據(jù)類型;3、MongoDB數(shù)據(jù)庫(kù),能夠更便捷的獲取數(shù)據(jù);4、MySQL分布式集群,高可用性。
分布式數(shù)據(jù)庫(kù)有:
一、Elasticsearch數(shù)據(jù)庫(kù)
1.Elasticsearch簡(jiǎn)介
分布式的實(shí)時(shí)文件存儲(chǔ),每個(gè)字段都被索引并可被搜索,分布式的實(shí)時(shí)分析搜索引擎
可以擴(kuò)展到上百臺(tái)服務(wù)器,處理PB級(jí)結(jié)構(gòu)化或非結(jié)構(gòu)化數(shù)據(jù)
2.Elasticsearch應(yīng)用場(chǎng)景
分布式的搜索引擎和數(shù)據(jù)分析引擎,全文檢索,結(jié)構(gòu)化檢索,數(shù)據(jù)分析
對(duì)海量數(shù)據(jù)進(jìn)行近實(shí)時(shí)的處理,站內(nèi)搜索(電商,招聘,門戶,等等),IT系統(tǒng)搜索(OA,CRM,ERP,等等),數(shù)據(jù)分析
3.Elasticsearch的優(yōu)缺點(diǎn)
缺點(diǎn):沒(méi)有用戶驗(yàn)證和權(quán)限控制,沒(méi)有事務(wù)的概念,不支持回滾,誤刪不能恢復(fù),需要java環(huán)境.
優(yōu)點(diǎn):將你的文檔分割到不同容器或者分片中,可以存在單個(gè)節(jié)點(diǎn)或多個(gè)節(jié)點(diǎn)
復(fù)制每個(gè)分片提供數(shù)據(jù)備份,防止硬件問(wèn)題導(dǎo)致數(shù)據(jù)丟失。
對(duì)集群中任意節(jié)點(diǎn)的相互請(qǐng)求進(jìn)行路由,保證獲取的數(shù)據(jù)是你需要的,集群增加或者重新分配分片時(shí),不停機(jī)讓新節(jié)點(diǎn)恢復(fù)丟失的節(jié)點(diǎn)分片數(shù)據(jù)
4.Elasticsearch的持久化方案
gateway 代表 elasticsearch 索引的持久化存儲(chǔ)方式,elasticsearch 默認(rèn)是先把索引存放到內(nèi)存中去,當(dāng)內(nèi)存滿了的時(shí)候再持久化到硬盤里。當(dāng)這個(gè) elasticsearch 集群關(guān)閉或者再次重新啟動(dòng)時(shí)就會(huì)從 gateway 中讀取索引數(shù)據(jù)。elasticsearch 支持多種類型的 gateway,有本地文件系統(tǒng)(默認(rèn)),分布式文件系統(tǒng),Hadoop 的 HDFS 和 amazon 的 s3 云存儲(chǔ)服務(wù)。
ElasticSearch是先把索引的內(nèi)容保存到內(nèi)存之中,當(dāng)內(nèi)存不夠時(shí)再把索引持久化到硬盤中,同時(shí)它還有一個(gè)隊(duì)列,是在系統(tǒng)空閑時(shí)自動(dòng)把索引寫到硬盤中。
二、Redis數(shù)據(jù)庫(kù)
1.Redis簡(jiǎn)介
redis是開(kāi)源BSD許可高級(jí)的key-value存儲(chǔ)系統(tǒng)(NOSQL),可以用來(lái)存儲(chǔ)字符串,哈希結(jié)構(gòu),鏈表,集合,因此,常用來(lái)提供數(shù)據(jù)結(jié)構(gòu)服務(wù),Redis支持?jǐn)?shù)據(jù)的持久化,可以將內(nèi)存中的數(shù)據(jù)保存在磁盤中,重啟的時(shí)候可以再次加 載進(jìn)行使用。 支持簡(jiǎn)單的key-value類型的數(shù)據(jù),同時(shí)還提供list,set,zset,hash等數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)。Redis支持?jǐn)?shù)據(jù)的備份,即master-slave模式的數(shù)據(jù)備份。
2.Redis應(yīng)用場(chǎng)景
A)常規(guī)計(jì)數(shù):粉絲數(shù),微博數(shù)
B)用戶信息變更
C)緩存處理,作為mysql的緩存
D)隊(duì)列系統(tǒng),建有優(yōu)先級(jí)的隊(duì)列系統(tǒng),日志收集系統(tǒng)
3.Redis的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
(1) 速度快,因?yàn)閿?shù)據(jù)存在內(nèi)存中,類似于HashMap,HashMap的優(yōu)勢(shì)就是查找和操作的時(shí)間復(fù)雜度都是O(1)
(2) 支持豐富數(shù)據(jù)類型,支持string,list,set,sorted set,hash
(3) 支持事務(wù),操作都是原子性,所謂的原子性就是對(duì)數(shù)據(jù)的更改要么全部執(zhí)行,要么全部不執(zhí)行
(4) 豐富的特性:可用于緩存,消息,按key設(shè)置過(guò)期時(shí)間,過(guò)期后將會(huì)自動(dòng)刪除
缺點(diǎn):
(1)Redis不具備自動(dòng)容錯(cuò)和恢復(fù)功能,主機(jī)從機(jī)的宕機(jī)都會(huì)導(dǎo)致前端部分讀寫請(qǐng)求失敗,需要等待機(jī)器重啟或者手動(dòng)切換前端的IP才能恢復(fù)
(2)主機(jī)宕機(jī),宕機(jī)前有部分?jǐn)?shù)據(jù)未能及時(shí)同步到從機(jī),切換IP后還會(huì)引入數(shù)據(jù)不一致的問(wèn)題,降低了系統(tǒng)的可用性
(3)redis的主從復(fù)制采用全量復(fù)制,復(fù)制過(guò)程中主機(jī)會(huì)fork出一個(gè)子進(jìn)程對(duì)內(nèi)存做一份快照,并將子進(jìn)程的內(nèi)存快照保存為文件發(fā)送給從機(jī),這一過(guò)程需要確保主機(jī)有足夠多的空余內(nèi)存。若快照文件較大,對(duì)集群的服務(wù)能力會(huì)產(chǎn)生較大的影響,而且復(fù)制過(guò)程是在從機(jī)新加入集群或者從機(jī)和主機(jī)網(wǎng)絡(luò)斷開(kāi)重連時(shí)都會(huì)進(jìn)行,也就是網(wǎng)絡(luò)波動(dòng)都會(huì)造成主機(jī)和從機(jī)間的一次全量的數(shù)據(jù)復(fù)制,這對(duì)實(shí)際的系統(tǒng)運(yùn)營(yíng)造成了不小的麻煩
(4)Redis較難支持在線擴(kuò)容,在集群容量達(dá)到上限時(shí)在線擴(kuò)容會(huì)變得很復(fù)雜。為避免這一問(wèn)題,運(yùn)維人員在系統(tǒng)上線時(shí)必須確保有足夠的空間,這對(duì)資源造成了很大的浪費(fèi)。
4.Redis的持久化方案
redis提供兩種方式進(jìn)行持久化,一種是RDB持久化(原理是將Reids在內(nèi)存中的數(shù)據(jù)庫(kù)記錄定時(shí)dump到磁盤上的RDB持久化),另外一種是AOF(append only file)持久化(原理是將Reids的操作日志以追加的方式寫入文件)。
RDB持久化是指在指定的時(shí)間間隔內(nèi)將內(nèi)存中的數(shù)據(jù)集快照寫入磁盤,實(shí)際操作過(guò)程是fork一個(gè)子進(jìn)程,先將數(shù)據(jù)集寫入臨時(shí)文件,寫入成功后,再替換之前的文件,用二進(jìn)制壓縮存儲(chǔ)。
三、Mongodb數(shù)據(jù)庫(kù)
1.Mongodb簡(jiǎn)介
MongoDB本身是一種非關(guān)系型數(shù)據(jù)庫(kù)。它的每一條記錄是一個(gè)Document,每個(gè)Document有一組鍵值對(duì)組成。MongoDB中的Document與JSON對(duì)象相似。 Document中字段的值可能包括其他Document,數(shù)組等。
2.Mongodb應(yīng)用場(chǎng)景
mongodb的主要目標(biāo)是在鍵/值存儲(chǔ)方式(提供了高性能和高度伸縮性)以及傳統(tǒng)的RDBMS系統(tǒng)(豐富的功能)架起一座橋梁,集兩者的優(yōu)勢(shì)于一身。mongo適用于以下場(chǎng)景:
a.網(wǎng)站數(shù)據(jù):mongo非常適合實(shí)時(shí)的插入,更新與查詢,并具備網(wǎng)站實(shí)時(shí)數(shù)據(jù)存儲(chǔ)所需的復(fù)制及高度伸縮性。
b.緩存:由于性能很高,mongo也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由mongo搭建的持久化緩存可以避免下層的數(shù)據(jù)源過(guò)載。
c.大尺寸、低價(jià)值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù)存儲(chǔ)一些數(shù)據(jù)時(shí)可能會(huì)比較貴,在此之前,很多程序員往往會(huì)選擇傳統(tǒng)的文件進(jìn)行存儲(chǔ)。
d.高伸縮性的場(chǎng)景:mongo非常適合由數(shù)十或者數(shù)百臺(tái)服務(wù)器組成的數(shù)據(jù)庫(kù)。
e.用于對(duì)象及JSON數(shù)據(jù)的存儲(chǔ):mongo的BSON數(shù)據(jù)格式非常適合文檔格式化的存儲(chǔ)及查詢。
3.Mongodb的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
(1) 弱一致性(最終一致),更能保證用戶的訪問(wèn)速度
(2) 文檔結(jié)構(gòu)的存儲(chǔ)方式,能夠更便捷的獲取數(shù)據(jù)
(3) 內(nèi)置GridFS,支持大容量的存儲(chǔ)
(4) 在使用場(chǎng)合下,千萬(wàn)級(jí)別的文檔對(duì)象,近10G的數(shù)據(jù),對(duì)有索引的ID的查詢不會(huì)比mysql慢,而對(duì)非索引字段的查詢,則是全面勝出。
缺點(diǎn):
(1)不支持事物
(2)占用空間過(guò)大,會(huì)造成磁盤浪費(fèi)
(3)單機(jī)可靠性比較差
(4)大數(shù)據(jù)量持續(xù)插入,寫入性能有較大波動(dòng)
4.Mongodb的持久化方案/異常處理
當(dāng)執(zhí)行寫操作時(shí),MongoDB創(chuàng)建一個(gè)journal來(lái)包含確切磁盤位置和改變的字節(jié)。因此,如果服務(wù)器突然崩潰,啟動(dòng)時(shí),journal會(huì)重放崩潰前并沒(méi)有刷新到磁盤上的任何寫操作。
數(shù)據(jù)文件每隔60s刷新到磁盤上,默認(rèn)情況下,因此journal只需要持有60s內(nèi)的寫入數(shù)據(jù)。journal預(yù)分配了幾個(gè)空文件用于此目的,位于/data/db/journal,命名為_(kāi)j.0,j.1等等。
MongoDB運(yùn)行很長(zhǎng)時(shí)間情況下,在journal目錄下,你會(huì)看到類似于_j.6217,_j.6218和_j.6219文件。這些文件是當(dāng)前的journal文件,如果MongoDB一直運(yùn)行,這些數(shù)字會(huì)持續(xù)增加。當(dāng)正常關(guān)閉MongoDB時(shí),這些文件將被清除,因?yàn)檎jP(guān)機(jī)不在需要這些日志的。
如果服務(wù)器崩潰或kill -9, mongodb再次啟動(dòng)時(shí),會(huì)重放journal文件,會(huì)輸出冗長(zhǎng)難懂的檢驗(yàn)行,這表明在正常的恢復(fù)。
四、Mysql分布式集群
1.Mysql分布式集群簡(jiǎn)介
MySQL集群是一個(gè)無(wú)共享的(shared-nothing)、分布式節(jié)點(diǎn)架構(gòu)的存儲(chǔ)方案,其目的是提供容錯(cuò)性和高性能。
數(shù)據(jù)更新使用讀已提交隔離級(jí)別(read-committedisolation)來(lái)保證所有節(jié)點(diǎn)數(shù)據(jù)的一致性,使用兩階段提交機(jī)制(two-phasedcommit)保證所有節(jié)點(diǎn)都有相同的數(shù)據(jù)(如果任何一個(gè)寫操作失敗,則更新失敗)。
無(wú)共享的對(duì)等節(jié)點(diǎn)使得某臺(tái)服務(wù)器上的更新操作在其他服務(wù)器上立即可見(jiàn)。傳播更新使用一種復(fù)雜的通信機(jī)制,這一機(jī)制專用來(lái)提供跨網(wǎng)絡(luò)的高吞吐量。
通過(guò)多個(gè)MySQL服務(wù)器分配負(fù)載,從而最大程序地達(dá)到高性能,通過(guò)在不同位置存儲(chǔ)數(shù)據(jù)保證高可用性和冗余。
2.Mysql分布式集群應(yīng)用場(chǎng)景
解決海量存儲(chǔ)問(wèn)題,比如京東B2B就用的Mysql分布式集群。
適用幾十億的PV對(duì)DB的訪問(wèn)。
3.Mysql分布式集群的優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
a) 高可用性
b)快速的自動(dòng)失效切換
c)靈活的分布式體系結(jié)構(gòu),沒(méi)有單點(diǎn)故障
d)高吞吐量和低延遲
e)可擴(kuò)展性強(qiáng),支持在線擴(kuò)容
缺點(diǎn):
a)存在很多限制,比如:不支持外鍵
b)部署、管理、配置很復(fù)雜
c)占用磁盤空間大,內(nèi)存大
d)備份和恢復(fù)不方便
e)重啟的時(shí)候,數(shù)據(jù)節(jié)點(diǎn)將數(shù)據(jù)load到內(nèi)存需要很長(zhǎng)時(shí)間
4.Mysql分布式集群的持久化方案
管理節(jié)點(diǎn)備份。
以上是“有哪些分布式數(shù)據(jù)庫(kù)”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站題目:有哪些分布式數(shù)據(jù)庫(kù)
分享URL:http://chinadenli.net/article38/iegcsp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、用戶體驗(yàn)、全網(wǎng)營(yíng)銷推廣、自適應(yīng)網(wǎng)站、虛擬主機(jī)、搜索引擎優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)