分布式精华问答:分布式环境下如何保持数据一致性的?| 技术头条
分布式開發(fā)的時(shí)代實(shí)際上早已悄悄地成為了時(shí)代的主流,今天,我們就來(lái)看看關(guān)于分布式的精華問答吧!
1
Q:分布式系統(tǒng)中主要是用到了服務(wù)化,消息中間件,數(shù)據(jù)庫(kù)拆分,便于橫向擴(kuò)展和維護(hù),但分布式系統(tǒng)中的拆分的這個(gè)維度該怎么把握?拆分后面臨的分布式事務(wù)用什么方式處理比較好?分布式中soa框架有dubbo、motan及spring cloud的spring全家桶,這些技術(shù)該怎么選擇?
A:以微服務(wù)為例,拆分遵守幾種原則,如單一職責(zé)、高內(nèi)聚低耦合等,拆分的顆粒度足夠小即可便于開發(fā);但不要過小,過小的化微服務(wù)的數(shù)量也會(huì)激增,管理這些大批量的服務(wù)也將會(huì)是一個(gè)挑戰(zhàn)。 分布式事務(wù)常用的方式有兩階段提交、三階段提交、paxos算法等。
Q:分布式環(huán)境下如何保持?jǐn)?shù)據(jù)一致性的?分布式事務(wù)嗎?
A:分布式系統(tǒng)的一致性有多種模型,如嚴(yán)格一致性、持續(xù)一致性、最終一致性等,分布式事務(wù)算法常用的有2PC、3PC、Paxos 各有優(yōu)缺點(diǎn),實(shí)際案例可以參考 Chubby、Hypertable、Zookeeper等。
Q:消息中間件的選擇上,能否單用kafka不用其他,還是說(shuō)根據(jù)不同業(yè)務(wù)場(chǎng)景選用不同的消息中間件。一般在什么情景下使用消息中間件呢?是否在并發(fā)程度不是很高的情況下可以不用,只有在并發(fā)達(dá)到一定程度才啟用呢?
A:消息中間件結(jié)合業(yè)務(wù)場(chǎng)景選單一種就行了。各類中間件各有優(yōu)劣 2.消息中間件適用于通信場(chǎng)景,比如消息一對(duì)一、廣播通信等。由于消息中間件這種隊(duì)列的數(shù)據(jù)結(jié)構(gòu)特點(diǎn),也可以用于數(shù)據(jù)一致性的場(chǎng)景。
Q:分布式實(shí)例是在不同的主機(jī)上的,文件如何能夠做到同步?
A:文件也是數(shù)據(jù),所以這個(gè)問題與數(shù)據(jù)的同步解決方案類似。這里可能要考慮的是相同的文件,在不同的主機(jī)下,如何擁有相同的標(biāo)識(shí),比如各類網(wǎng)盤。系統(tǒng)可以每個(gè)上傳文件一個(gè)哈希值.也就是文件的唯一識(shí)別碼,這樣可以在同步時(shí),可以根據(jù)這個(gè)唯一碼進(jìn)行對(duì)比。
Q:分布式,微服務(wù)這些都需要在什么情況下使用?分布式最終實(shí)現(xiàn)了什么目的?如果非必須的,是否要上分布式呢?
A:大型、業(yè)務(wù)復(fù)雜的系統(tǒng)需要; 分布式本質(zhì)是為了解決單機(jī)的所存在的問題,比如性能瓶頸、擴(kuò)展、容錯(cuò)等; 分布式系統(tǒng)第一定律“能不要上分布式系統(tǒng)就不要上”。
小伙伴們沖鴨,后臺(tái)留言區(qū)等著你!
關(guān)于分布式,今天你學(xué)到了什么?還有哪些不懂的?除此還對(duì)哪些話題感興趣?快來(lái)留言區(qū)打卡啦!留言方式:打開第XX天,答:……
同時(shí)歡迎大家搜集更多問題,投稿給我們!風(fēng)里雨里留言區(qū)里等你~
福利
掃描添加小編微信,備注“姓名+公司職位”,加入【云計(jì)算學(xué)習(xí)交流群】,和志同道合的朋友們共同打卡學(xué)習(xí)!
推薦閱讀:
分布式架構(gòu)系列: 負(fù)載均衡技術(shù)詳解 | 技術(shù)頭條
00后的AI開發(fā)者進(jìn)階之道:從入門到鏖戰(zhàn)MIT編程大賽 | 人物志
吃了公司零食被指“偷吃”,外包怎么了?
ICPC 2019國(guó)際大學(xué)生程序設(shè)計(jì)競(jìng)賽,中國(guó)高校未能奪冠
EOS現(xiàn)狀: 72%應(yīng)用涉賭被列為高危, 說(shuō)好的詩(shī)和遠(yuǎn)方, 你竟淪落成了這樣?
涼山火災(zāi)啟示錄:面對(duì)大火,AI 能做些什么?
真香,朕在看了!
總結(jié)
以上是生活随笔為你收集整理的分布式精华问答:分布式环境下如何保持数据一致性的?| 技术头条的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Boost::beast模块的同步h
- 下一篇: 基于Boost::beast模块的无栈协