本篇內(nèi)容介紹了“大數(shù)據(jù)體系概念有哪些”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站制作、廣德網(wǎng)絡(luò)推廣、重慶小程序開發(fā)、廣德網(wǎng)絡(luò)營銷、廣德企業(yè)策劃、廣德品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供廣德建站搭建服務(wù),24小時(shí)服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com
這個(gè)不同于分布式數(shù)據(jù)庫,大多數(shù)的NOSQL系統(tǒng)采用了更加簡單的數(shù)據(jù)模型,不管是MongoDB,Hbase,redis,Memcache,還是其他的Nosql,都采取了【簡單數(shù)據(jù)模型】,怎么簡單? 通常而言,每一個(gè)記錄都擁有唯一的Key,查詢的結(jié)果也就是Value,而且系統(tǒng)對于查詢的支持也緊緊只到了記錄級別的原子級,很少有Nosql支持外鍵和跨記錄,跨segment的關(guān)系維護(hù),這種一次操作獲取單個(gè)記錄的約定極大的增強(qiáng)了系統(tǒng)的可擴(kuò)展性,消除了分布式事務(wù)的開銷
? 通常而言,Nosql需要維護(hù)兩種數(shù)據(jù): 元數(shù)據(jù)和應(yīng)用數(shù)據(jù),元數(shù)據(jù)是用于系統(tǒng)管理的,用來描述整個(gè)集群中間的狀態(tài)的信息,如整個(gè)Nsql 機(jī)群的節(jié)點(diǎn)數(shù)和數(shù)據(jù)映射。而應(yīng)用數(shù)據(jù),就是通常你的業(yè)務(wù)系統(tǒng),實(shí)際需求使用的數(shù)據(jù),看場合不同而不同。
弱一致性? 為什么一致性還需要分強(qiáng)弱?究竟一致性分幾種,Nosql 是如何實(shí)現(xiàn)的?
有效的降低成本,擴(kuò)大的集群整體能力。
構(gòu)圖如下:
用簡單的話語來解析一致性,就是系統(tǒng)在執(zhí)行某項(xiàng)的操作以后還處于一致
的狀態(tài),比如:你更新以后,所有的用戶都該讀取到最新的值,這樣的系統(tǒng)被認(rèn)為具有強(qiáng)一致性。
可用性:這個(gè)更簡單了,什么是可用?我找你NoSQL取一個(gè)值,你不能三分鐘轉(zhuǎn)圈圈還不給我吧
,這個(gè)就叫不可用,可不可用有兩個(gè)最基本的判定:
在“一定時(shí)間”,“返回一定的結(jié)果”。
在“一定的時(shí)間之內(nèi)”這個(gè)是相當(dāng)?shù)挠斜匾玫?,要不然任何支付啊,交易啊,?shù)據(jù)信息傳遞都是超時(shí)的存在。
“返回結(jié)果”,這個(gè)更加重要了,你不可能告訴前端,嘿,底層肯定會在一定時(shí)間內(nèi)有動作的,但是這個(gè)動作
不給你數(shù)據(jù),給你“excetpion...”
分區(qū)這個(gè)功能你可以完全的理解為一張大餅,被劃分為多塊,對數(shù)據(jù)的讀取仿佛就是在吃這張大餅,本質(zhì)上是若干個(gè)獨(dú)立的分區(qū),而分區(qū)之間互相連通但是沒有依賴,可以動態(tài)的加入和離開。
CAP這三大性質(zhì),是在分布式系統(tǒng)環(huán)境之中設(shè)計(jì)和部署時(shí)所需要考慮的單個(gè)重要的系統(tǒng)需求,通常而言,不能夠同時(shí)的滿足這三大性,舉一個(gè)小小的例子:來說明,看圖說話:
A,B就是兩Client,真?zhèn)€系統(tǒng)目前只有2臺機(jī)器,V0為數(shù)據(jù),2臺機(jī)器上都有V0,是一個(gè)副本存在。
1:首先 A 更新了一下VO的值,比如更新為字符串:newString
2:既然V0跟新了,那么作為一個(gè)副本的存在,在G2上的V0也需要更新
3:正式更新:G1開始不斷的發(fā)射消息到G2
4:G2中的值被改變,并且B開始讀取到最新的一個(gè)值:newString. 圖中表示為 v1:代表 value1
ok,一切順利。如下圖所示
而現(xiàn)實(shí)總是太殘酷,你在更新的過程之中,過程3被中斷了。也就是數(shù)據(jù)沒有正確的被發(fā)射過去 ,此時(shí)數(shù)據(jù)就處于了一個(gè)不一致的狀態(tài)。B讀取到的數(shù)據(jù)就不是一個(gè)最新版的數(shù)據(jù)。
CAP的模型告訴了我們一個(gè)事實(shí),要想保證容錯(cuò)性質(zhì),那么就很有可能不能保證一致性。有的人會說,解決這個(gè)問題很簡單,我們對于這個(gè)傳遞更新的操作做一個(gè) 同步操作不就好了?
事實(shí)上來說,如果不加同步,G1-》G2的更新是不可知的。完全可能處于延遲,中斷的狀態(tài)。能保證“A“,”P”
當(dāng)是是不能保證一直性“C">
大的情況之下,當(dāng)節(jié)點(diǎn)的數(shù)量成百上千的時(shí)候,這個(gè)開銷被放大了,以至于服務(wù)是可用,但是沒有使用的價(jià)值了。也就是說
“A“可用性不能保證了。
三個(gè)不能同時(shí)滿足,那么我們就看看是否能夠保證簡單的滿足2個(gè):
如果你想避免容錯(cuò)性問題,最簡單的方式,當(dāng)然是將所有的數(shù)據(jù)都放置在一臺機(jī)器之上,雖然無法保證
100%系統(tǒng)都可用,但是至少不會出現(xiàn)由分區(qū)帶來的效果。
放棄可用性是指在遇到了容錯(cuò)性的問題的過程之中,好不猶豫的以保證容錯(cuò),一致性為先,即便服務(wù)不 能提供,即便服務(wù)肯定會超時(shí)。
放棄一致性在這里并不是指不再保證我們的多個(gè)副本之間的一致,而是指只是暫時(shí)允許不一致的狀態(tài),在 供服務(wù)使用之前來保證最終的一致性就可以了。
“大數(shù)據(jù)體系概念有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!