成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

架構(gòu)師的能力源于你的信任

開發(fā) 架構(gòu)
普瑞特這位架構(gòu)師的架構(gòu)師能夠設(shè)計(jì)出功能更強(qiáng),性能更佳,比任何其它設(shè)計(jì)更優(yōu)的系統(tǒng)。任何出自這個(gè)家伙之手的設(shè)計(jì)或編碼,跟其它任何人設(shè)計(jì)的相似的組件相比,跟任何地方已經(jīng)有了的相似系統(tǒng)相比,都會(huì)具有更全的功能,更強(qiáng)的能力,更堅(jiān)不可破的性能,無(wú)人能企及。

[[67612]]

普瑞特有幸爭(zhēng)取到了為一個(gè)架構(gòu)師的架構(gòu)師工作的機(jī)會(huì)。這位架構(gòu)師的架構(gòu)師能夠設(shè)計(jì)出功能更強(qiáng),性能更佳,比任何其它設(shè)計(jì)更優(yōu)的系統(tǒng)。任何出自這個(gè)家伙之手的設(shè)計(jì)或編碼,跟其它任何人設(shè)計(jì)的相似的組件相比,跟任何地方已經(jīng)有了的相似系統(tǒng)相比,都會(huì)具有更全的功能,更強(qiáng)的能力,更堅(jiān)不可破的性能。無(wú)人能企及。

回溯到我們要講的這個(gè)系統(tǒng)的設(shè)計(jì)之初,架構(gòu)師的架構(gòu)師命令說(shuō)這個(gè)系統(tǒng)的通信機(jī)制將采用JMS消息傳送。并且,要準(zhǔn)備兩個(gè)隊(duì)列;一個(gè)傳送普通消息,一個(gè)傳送高優(yōu)先級(jí)消息。其它應(yīng)用軟件對(duì)這個(gè)新系統(tǒng)的服務(wù)的要求是,普通優(yōu)先級(jí)的消息,系統(tǒng)收集后批量處理,高優(yōu)先級(jí)的消息在用戶間直接傳送。這個(gè)兩個(gè)消息隊(duì)列的活動(dòng)情況都受應(yīng)用軟件的監(jiān)控,但高優(yōu)先級(jí)的消息能跳到隊(duì)列的最前面以達(dá)到最快的響應(yīng)。還有,由于這個(gè)系統(tǒng)將要去替代的系統(tǒng)是長(zhǎng)久以來(lái)以bug多多和穩(wěn)定性極差而聞名,所以,這些新系統(tǒng)必須要刀槍不入。它絕對(duì)不允許宕機(jī)。

當(dāng)普瑞特接受培訓(xùn)了解這個(gè)系統(tǒng)時(shí),他問架構(gòu)師的架構(gòu)師,當(dāng)如果有這樣或那樣的錯(cuò)誤發(fā)生時(shí),系統(tǒng)會(huì)做什么響應(yīng)?

架構(gòu)師的架構(gòu)師高傲的宣稱,絕對(duì)不會(huì)有任何事情能導(dǎo)致系統(tǒng)宕機(jī)。沒有任何錯(cuò)誤能阻擋它運(yùn)行。沒有任何情況能使它失去控制。它是無(wú)可阻擋的。它會(huì)絕對(duì)可靠,直到最后一分鐘。你要相信我!

普瑞特明白這位架構(gòu)師的架構(gòu)師對(duì)自己深信不疑。然而,事情并不是總會(huì)按計(jì)劃運(yùn)行。

一天,普瑞特接到一個(gè)負(fù)責(zé)監(jiān)控這個(gè)系統(tǒng)運(yùn)行的人的電話:“你們的這個(gè)系統(tǒng)的日志體積增長(zhǎng)出現(xiàn)異常。你們的系統(tǒng)在過去24小時(shí)里產(chǎn)生了以前一個(gè)月才會(huì)有的體積量,系統(tǒng)負(fù)載上沒有特別的增長(zhǎng);請(qǐng)檢查一下。”

普瑞特登錄生產(chǎn)服務(wù)器,發(fā)現(xiàn)了一排排按序號(hào)排列的日志,每個(gè)日志文件都有20GB,全是這一天產(chǎn)生的!沒有任何編輯器能打開這樣大的文件。辦法只能是用grep搜尋里面的異常。異常多的如火山?jīng)坝俊?雌饋?lái)系統(tǒng)會(huì)每秒鐘吐出數(shù)百次異常事件和堆棧信息。用tail獲取日志尾部片段,顯示所有的異常都相同:“無(wú)法訪問隊(duì)列:隊(duì)列控制器似乎已經(jīng)停止運(yùn)行。”

不幸的是,隊(duì)列控制器并不認(rèn)可這種說(shuō)法;它很健康,并在處理著消息。

與此同時(shí),客戶對(duì)系統(tǒng)性能的抱怨不斷升級(jí)。經(jīng)理跑過來(lái)詢問怎么回事。耳朵在冒煙。眼睛在噴火。普瑞特感覺到死神正在上面盯著他。

進(jìn)一步調(diào)查顯示,雖然有一部分應(yīng)用的實(shí)例在不斷的出現(xiàn)并拋出大量的異常,但有些卻在順利的收發(fā)信息、處理數(shù)據(jù)。

深挖之后,普瑞特發(fā)現(xiàn)處理消息的外層代碼是這樣寫的:

  1. Connection          conn;                    // injected via Spring  
  2.  
  3. Queue               receiveQueueNormal;      // injected via Spring  
  4. Queue               receiveQueuePriority;    // injected via Spring  
  5. ...  
  6.  
  7. Session session = conn.createSession(true,Session.SESSION_TRANSACTED);  
  8. MessageConsumer consumerNormal = session.createConsumer(receiveQueueNormal);  
  9.  
  10. MessageConsumer consumerPriority = session.createConsumer(receiveQueuePriority);  
  11. ...  
  12.  
  13. while (true) {    // AA: This will never fail: trust me!  
  14.    try {  
  15.          Message msg = consumerPriority.receiveNoWait();  
  16.  
  17.          if (msg == null) {  
  18.              msg = consumerNormal.receiveNoWait();  
  19.  
  20.              if (msg == null) {  
  21.                  continue;  
  22.  
  23.              }  
  24.          }  
  25.          // process the message here  
  26.    } catch (Throwable t) {  
  27.  
  28.       log.error("...",t);  
  29.    }  

進(jìn)一步在隊(duì)列配置文件里發(fā)現(xiàn)問題:

  1. <policyEntry topic=">" producerFlowControl="true" memoryLimit="1mb"> 

當(dāng)消息的體積很小或消息很少時(shí),這段代碼會(huì)呼嘯的運(yùn)行,它能每秒鐘檢查無(wú)數(shù)次隊(duì)列看有沒有消息可處理。

但隨著業(yè)務(wù)的增長(zhǎng),當(dāng)消息的體積增長(zhǎng)到某種程度,消息控制器就會(huì)耗盡內(nèi)存,結(jié)果就會(huì)放棄一些消息,但并不是放棄所有的連接(可能是采用了自我保護(hù)模式)。這個(gè)系統(tǒng)——設(shè)計(jì)和開發(fā)都基于不會(huì)出現(xiàn)意外情況的假設(shè)——仍然在快速的最大限度的利用著CPU,但現(xiàn)在卻因?yàn)闊o(wú)法和隊(duì)列管理器取得聯(lián)系,每個(gè)循環(huán)都會(huì)拋出異常日志信息。

沒有重新獲取連接的代碼。沒有讓連續(xù)相同的日志錯(cuò)誤信息做合并延遲輸出。沒有郵件發(fā)送給支持人員說(shuō)“不好的事情發(fā)生了!

出自架構(gòu)師的架構(gòu)師的源代碼里只有一句孤單的注釋:”相信我!

英文原文:Trust Me!

譯文鏈接:http://www.aqee.net/trust-me/

責(zé)任編輯:林師授 來(lái)源: 外刊IT評(píng)論
相關(guān)推薦

2022-05-27 15:19:38

架構(gòu)師溝通認(rèn)知

2012-12-13 09:40:04

架構(gòu)師

2015-12-23 10:50:24

運(yùn)維OPS運(yùn)維架構(gòu)師

2021-02-03 11:04:30

架構(gòu)師能力挑戰(zhàn)

2020-08-24 08:50:12

架構(gòu)師TL技術(shù)

2011-04-07 16:55:12

測(cè)試架構(gòu)師架構(gòu)師測(cè)試

2011-04-07 16:59:19

測(cè)試架構(gòu)師架構(gòu)師測(cè)試

2011-04-07 16:49:53

測(cè)試架構(gòu)師架構(gòu)師測(cè)試

2021-09-13 09:44:13

架構(gòu)師軟技能技術(shù)

2012-08-04 16:02:00

架構(gòu)師

2023-03-17 16:45:57

2016-09-23 10:05:11

運(yùn)維架構(gòu)師前景

2020-05-07 10:14:00

企業(yè)架構(gòu)師CIOIT網(wǎng)絡(luò)

2022-04-28 13:08:51

架構(gòu)師軟件

2009-12-18 10:22:50

Ray Ozzie架構(gòu)師

2018-07-06 11:25:40

Java架構(gòu)師面試

2023-09-02 21:22:36

Airbnb系統(tǒng)

2019-07-23 18:15:26

技術(shù)大數(shù)據(jù)數(shù)據(jù)庫(kù)

2010-12-28 10:40:50

admin

2012-02-23 15:02:20

架構(gòu)師介紹
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 精品久久99| 欧美精品一二三 | 一区二区三区欧美在线观看 | 久草新在线 | 欧美极品在线 | 中文字幕 亚洲一区 | 久久久久久免费免费 | 五月天婷婷久久 | 中文字字幕一区二区三区四区五区 | 欧美日韩综合精品 | 日本在线免费视频 | 国产亚洲一区二区精品 | 欧美国产精品一区二区三区 | 成人欧美一区二区三区黑人孕妇 | 国产欧美久久精品 | 一区二区三区欧美 | 91亚洲国产成人久久精品网站 | 久久久久国产精品 | 俺去俺来也www色官网cms | 久久精品小视频 | 伊人性伊人情综合网 | 国产精品久久久久久久久免费桃花 | 一区二区三区国产精品 | 精品国产一区二区三区久久影院 | 射欧美| 精品一区二区三区视频在线观看 | 国产精品美女久久久久久久网站 | 天堂久久一区 | 国产精品久久久久久婷婷天堂 | 国产欧美一区二区三区在线看 | 日韩精品一区二 | 91亚洲一区| 国产真实精品久久二三区 | 97视频在线观看网站 | 国产操操操| 成人免费视频网站在线观看 | 在线一区二区观看 | 欧美视频一区二区三区 | 巨大荫蒂视频欧美另类大 | 一级毛片中国 | 噜久寡妇噜噜久久寡妇 |