<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          jbpaxos跨機(jī)房配置中心

          聯(lián)合創(chuàng)作 · 2023-09-27 00:41

          paxos是什么?

          一致性算法,google稱(chēng)其為唯一的一致性算法,其他的算法都是paxos的簡(jiǎn)化。

          我們知道一般數(shù)據(jù)庫(kù)的主從同步,實(shí)際上在極端情況下,依然會(huì)產(chǎn)生不一致的現(xiàn)象,這就造成了master的損壞,需要手動(dòng)的切換備機(jī),而在paxos中,由于一致性算法,我們可

          以做到自動(dòng)的進(jìn)行master的切換,而不會(huì)產(chǎn)生不一致的現(xiàn)象,當(dāng)然這個(gè)要在一個(gè)大前提下,就是n臺(tái)機(jī)器,僅有小于 n/2的機(jī)器損壞,但這樣依然提供了我們一種更高的容災(zāi)標(biāo)準(zhǔn)。

          jbpaxos是什么?

          jbpaxos = java  basic paxos , java語(yǔ)言實(shí)現(xiàn)的paxos編程框架,提供高可用,強(qiáng)一致,基于paxos構(gòu)建分布式程序的框架。

          適用的場(chǎng)景?

          對(duì)于一般的應(yīng)用而言,沒(méi)有數(shù)據(jù)的保存,僅僅是提供服務(wù),那么我們可以說(shuō)這些server對(duì)于數(shù)據(jù)而言是無(wú)狀態(tài)的,比如說(shuō),我們多數(shù)的java web應(yīng)用,這些應(yīng)用所需要的數(shù)據(jù),

          要么在緩存里,要么在 db里,那這些server僅僅需要提供一個(gè)更穩(wěn)定的負(fù)載器來(lái)進(jìn)行故障轉(zhuǎn)移即可了,實(shí)際上整套系統(tǒng)的一致性和容災(zāi)全部交由另外的系統(tǒng)來(lái)解決(db,緩存,

          穩(wěn)定的負(fù)載均衡),這些server 是不適用paxos算法的。


          對(duì)于另外一些應(yīng)用,我們需要自己維護(hù)數(shù)據(jù)副本,不依賴(lài)于第3方服務(wù)的,比較適合paxos,自動(dòng)選主,主故障時(shí),15s恢復(fù)期,可提供強(qiáng)一致性,誘人的特性,但這些特性,也


          不是沒(méi)有代價(jià),更高的網(wǎng)絡(luò)負(fù)載,更高的寫(xiě)入延時(shí),如果你能忍受這些,那么請(qǐng)選擇paxos吧。

          構(gòu)建高可用的分布式程序,不是有zookeeper嗎?

          zookeeper提供了類(lèi)似chubby的功能,可以說(shuō)zookeeper提供的是一種服務(wù),jbpaxos提供的是更底層的算法實(shí)現(xiàn),基于接口的編程,就可以實(shí)現(xiàn)類(lèi)似與zookeeper的功能

          通過(guò)jbpaxos,可以自由的實(shí)現(xiàn)副本間的同步,zookeeper提供服務(wù)的形式,是無(wú)法提供副本間同步的功能,副本間同步的功能,請(qǐng)參見(jiàn)下面的demo,實(shí)際上,每個(gè)config server 就是一份副本

          jbpaxos 0.0.1beta提供了什么?

          一個(gè)classic paxos的實(shí)現(xiàn),應(yīng)對(duì)磁盤(pán)損壞,主機(jī)宕機(jī),可以做到15s恢復(fù),提供了paxos的底層實(shí)現(xiàn),提供了網(wǎng)絡(luò)層的接口,二次開(kāi)發(fā)不需要考慮網(wǎng)絡(luò)層上的開(kāi)發(fā),基于此項(xiàng)目的二次開(kāi)發(fā),可以實(shí)現(xiàn)高可用的配置中心,分布式鎖,基于paxos的副本同步機(jī)制等等。

          根據(jù)網(wǎng)絡(luò)情況,和設(shè)定的最大 rt 容忍時(shí)間,自動(dòng)運(yùn)行時(shí)調(diào)整封包大小,最大化網(wǎng)絡(luò)利用率。


          0.0.1beta暫時(shí)沒(méi)有提供fellower的實(shí)現(xiàn),僅僅有senator的實(shí)現(xiàn)

          jbpaxos 0.0.1beta中的概念

          senators,用于寫(xiě)入時(shí)投票的節(jié)點(diǎn),fellowers(下個(gè)版本實(shí)現(xiàn),對(duì)于配置中心類(lèi)似的多讀少寫(xiě)的應(yīng)用比較有用),僅僅學(xué)習(xí)的節(jié)點(diǎn),不參與投票過(guò)程

          master , 從senators中選舉出的法官,它來(lái)發(fā)起一項(xiàng)法案的投票

          jbpaxos 的基本性能

          3個(gè)節(jié)點(diǎn)時(shí),寫(xiě)入大小128bytes, 單線(xiàn)程單tcp連接非阻塞同步寫(xiě)入3w+ tps , 1000線(xiàn)程單tcp連接阻塞同步寫(xiě)入2.5w+ , 3線(xiàn)程3個(gè) tcp連接非阻塞同步寫(xiě)入4w+ ,單線(xiàn)程同步寫(xiě)入200tps

          寫(xiě)入大小512bytes ,3線(xiàn)程3個(gè) tcp連接非阻塞同步寫(xiě)入3w+

          寫(xiě)入大小1024bytes,3線(xiàn)程3個(gè) tcp連接非阻塞同步寫(xiě)入1.6w+ 

          512及1024bytes的時(shí)候,基本上將千兆網(wǎng)卡頂滿(mǎn)了

          如果說(shuō)節(jié)點(diǎn)上升到5個(gè)的時(shí)候,吞吐會(huì)下降,寫(xiě)入的大小影響系統(tǒng)性能非常多,所以建議在開(kāi)發(fā)的時(shí)候?qū)懭霐?shù)據(jù)需要經(jīng)過(guò)壓縮,建議使用snappy或lzo這種高吞吐的壓縮算法

          讀取性能,要看二次開(kāi)發(fā)的實(shí)現(xiàn)如何,及服務(wù)端口,是否和內(nèi)部系統(tǒng)端口,走同一塊網(wǎng)卡


          當(dāng)前的總體架構(gòu)圖



          \

          架構(gòu)解說(shuō):5個(gè)config server 為互備節(jié)點(diǎn),當(dāng)2個(gè)節(jié)點(diǎn)(包含2個(gè))以下?lián)p壞,不會(huì)影響服務(wù),client連接上任一節(jié)點(diǎn)即可,對(duì)于跨機(jī)房部署,要優(yōu)先連接最近的節(jié)點(diǎn)

          后續(xù)架構(gòu):jbpaxos下個(gè)版本,預(yù)計(jì)支持fellower,當(dāng)下個(gè)版本發(fā)布后,config server不做代碼修改,即可將架構(gòu)變?yōu)橄聢D:



          后續(xù)架構(gòu)解說(shuō):相比兩種架構(gòu)區(qū)別,后一種,在擴(kuò)展更高連接量時(shí),有非常大的優(yōu)勢(shì),fellower的數(shù)量決定了可以支撐的client 的數(shù)量,但對(duì)寫(xiě)入沒(méi)有幫助,反而會(huì)加大寫(xiě)入的延時(shí),適合于像配置中心這類(lèi)多監(jiān)視變化,少修改的類(lèi)型



          程序架構(gòu)圖: 紅框的部分,是我們需要做的





          瀏覽 24
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色呦哟无码精品一区二区三区 | 国产高清在线视频 | 色情网站在线 | 云盘流出真实操逼免费视频国产 | 美女av在线播放 美女高潮喷水影院 |