原始碼學習心得體會 Zookeeper

2021-09-19 14:01:47 字數 1503 閱讀 7343

快凌晨了,也到了工作10年的尾巴,自從工作5、6年之後,有了家有了娃,啃技術的時間越來越少,技術專家這條路不好走。 經過幾次阿里面試,明顯感覺對於分布式或者大型網際網路平台開發認識的不足,但是回來研究一下cap zab tcc xa等知識點,也是現在大公司面試主要問題點,解答思路其實很簡單,是通過tcp協議保護(上層做協議封裝)在高併發環境下的區域網內部,保證系統設計平衡性,即從事務方面下手,兼顧效率的同時也要保證高可用性。其中並未有高深的演算法,更多的是邏輯上的若干層保護。在這裡要吐槽一下國內中小公司技術環境,基本是兩三年下來領導們富糧結餘不少,下面的工程狗技術學到的不多,再加上國內技術基本就是國外兩三年換一輪,國內搬過來改一輪。 當然中小公司初衷不是為了留下什麼開源星級、技術大牛、框架,而只是利益驅使。

commitprocessor類

queuedrequests和committedrequests 都是linkedlist,保證順序性;

public void processrequest(request request)

// request.addrqrec(">final");

long tracemask = zootrace.client_request_trace_mask;

if (request.type == opcode.ping)

if (log.istraceenabled())

processtxnresult rc = null;

synchronized (zks.outstandingchanges)

if (zks.outstandingchangesforpath.get(cr.path) == cr)

}if (request.hdr != null)

// do not add non quorum packets to the queue.

//將操作動作型別的請求存放提交佇列

if (request.isquorum(request.type))

}if (request.hdr != null && request.hdr.gettype() == opcode.closesession)

}if (request.cnxn == null)

servercnxn cnxn = request.cnxn;

string lastop = "na";

zks.decinprocess();

code err = code.ok;

record rsp = null;

boolean closesession = false;

try

keeperexception ke = request.getexception();

if (ke != null)

if (log.isdebugenabled())

switch (request.type)

case opcode.createsession:

} catch (ioexception e)

}

學習心得體會1

首先我定義了乙個類 sealed class usermodel set public string username set public usermodel string name,int32 age public void displaymember userage this.username...

angular學習心得體會

1 ionic的自定義服務factory,service,provide等.factory hots function hots 這個名字是自定義服務的名字,可以注入到不同controller裡面公用,一般邏輯處理,資料處理,都會放在自定義服務內,當你初試 angular 時,很自然地就會往 con...

陣列學習心得體會

這一章的主要內容是陣列,通過對陣列的學習,我能夠運用陣列解決更多複雜的問題,但是儘管用陣列解決問題,更加方便,但不得不承認,這一章的題目難度也明顯增高,挑戰性也隨之增強,下面是我對陣列這一章的主要內容的總結。一維陣列 一,一維陣列的定義 速度就是一堵相同的變數,他們往往都是為了表達同一批物件的統一屬...