好男人天堂网,久久精品国产这里是免费,国产精品成人一区二区,男人天堂网2021,男人的天堂在线观看,丁香六月综合激情

當前位置:首頁 > 網(wǎng)站舊欄目 > 學習園地 > 設(shè)計軟件教程 > 采訪分布式數(shù)據(jù)訪問層(Data Access Layer)

采訪分布式數(shù)據(jù)訪問層(Data Access Layer)
2010-01-14 23:28:50  作者:  來源:
分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)(以下簡稱DAL)是綜合MySQL Proxy、Memcached、集群等等技術(shù)優(yōu)點而構(gòu)建的一個軟件系統(tǒng)。目的是為了解決在構(gòu)建大中型網(wǎng)站時遇到的和數(shù)據(jù)訪問有關(guān)的諸多問題,如怎么使得切庫分表透明化,如何使得緩存存取清除自動化,怎樣才能更好地防止服務(wù)單點故障等等。DAL是手機之家團隊近幾年在開發(fā)和運營上的經(jīng)驗的總結(jié)以及智慧的結(jié)晶。

許超前 是手機之家一位資深的開發(fā)者和架構(gòu)師, JavaEye非常榮幸的采訪了他。

許超前博客:http://www.longker.org/

歡迎大家推薦更多開源項目和業(yè)界專家給我們,支持中國的IT發(fā)展,發(fā)站內(nèi)短信給JavaEye管理員或者發(fā)信到webmaster@javaeye.com,謝謝。

采訪分布式數(shù)據(jù)訪問層(Data Access Layer)作者許超前(十四) Top

JavaEye:1.Hi,許超前,你好,非常榮幸能夠采訪你,首先你能夠向大家介紹一下分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)嗎?

許超前:簡單說來,分布式數(shù)據(jù)訪問層(以下簡稱DAL)是綜合MySQL Proxy、Memcached、集群等等技術(shù)優(yōu)點而構(gòu)建的一個軟件系統(tǒng)。目的是為了解決在構(gòu)建大中型網(wǎng)站時遇到的和數(shù)據(jù)訪問有關(guān)的諸多問題,如怎么使得切庫分表透明化,如何使得緩存存取清除自動化,怎樣才能更好地防止服務(wù)單點故障等等。后面,我會在我的博客上以及今年的SD2China大會上做進一步的說明,有興趣的可以留意。

JavaEye:2.分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)是什么時候誕生的,能否介紹一下發(fā)展歷程?

許超前:DAL的產(chǎn)生是經(jīng)歷一番波折的。

2007 年,手機之家的用戶已經(jīng)接近1000萬、PV也到了500萬以上,正處于中小型網(wǎng)站向大型網(wǎng)站的過渡時期。那時候,我們明顯感覺到我們在技術(shù)上已經(jīng)遇上了瓶頸:一個是系統(tǒng)負載過高,經(jīng)常要擔心我們的數(shù)據(jù)庫是不是又掛了,進而造成整個系統(tǒng)的癱瘓;第二個是5年積累下來的代碼也已經(jīng)非常難以維護,因為分層模糊,結(jié)果到處充滿著數(shù)據(jù)庫訪問邏輯、到處充滿著緩存讀寫邏輯,再加上表的設(shè)計不合理,造成無法簡單地進行水平伸縮?傊,我們的系統(tǒng)已經(jīng)到了不得不進行改造的地步了。

后來,老高(手機之家創(chuàng)始人高春輝)組了一個研發(fā)團隊,旨在從根本上解決上述提到的問題。在此后一年的時間里,我們走了很多彎路,經(jīng)歷了很多痛苦,不過,也正是在這段時間里,產(chǎn)生了DAL的雛形,經(jīng)過若干次改進,變成了后來的DAL1.0。DAL的產(chǎn)生完全是形勢使然。。。到了那個時間、在那個地點、做了那件事。

DAL1.0上線后數(shù)據(jù)庫的QPS明顯下降,從幾千降到幾百。事實證明,我們找到了一條行得通的路子。所以才有DAL的后續(xù)版本的開發(fā),才有今天的DAL2.x版本的產(chǎn)生。

JavaEye:3.能介紹一下手機之家網(wǎng)站和技術(shù)團隊嗎?

許超前:手機之家是一個旨在提供全方位的手機相關(guān)服務(wù)的資訊類網(wǎng)站。在7年的時間里,手機之家從無到有,已經(jīng)發(fā)展成為極具人氣、最受關(guān)注的手機產(chǎn)品資訊網(wǎng)站。有點廣告的味道,不過說的都是事實,呵呵。

以下是今年3月份在Beta技術(shù)沙龍上提到的統(tǒng)計數(shù)據(jù):
a. 1000w+用戶
b. 3000w+帖子
c. 1.1TB+附件
d. 780w+ Page View/每天
e. 5~10w在線用戶/15分

現(xiàn)在,用戶應(yīng)該是1200萬了吧,其它的也有所變動。最近比較忙,沒再去關(guān)注。

手機之家現(xiàn)在有個技術(shù)部,負責網(wǎng)站的日常維護事宜;我們還有個項目組,負責整個系統(tǒng)的架構(gòu)設(shè)計及新技術(shù)的研究和探索等等。

JavaEye:4.分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)的主要特點是什么?能否簡要分析一下它實現(xiàn)的主要技術(shù)核心?

許超前:要說特點,摘抄一下我在博客里寫的關(guān)于新版DAL的項目目標,這些目標在DAL2.x里已經(jīng)得到了相對較好的實現(xiàn),我想這應(yīng)該就是它最大的特點了吧:

一)可伸縮。
這里是指Scale Out.,即水平可伸縮。事實上,這點更應(yīng)該是整個系統(tǒng)要考慮的目標了,而非DAL,DAL要考慮的是怎么更好地支持。舉例說,我們可以一個庫一個服務(wù),甚至可以是一個表一個服務(wù);庫、表拆分后,DAL應(yīng)能路由查詢、合并結(jié)果,而不是讓應(yīng)用程序去操心這些事。

二)高可用性。
1) 我們認為出錯失敗是很正常的,一臺機器倒下了,其它機器應(yīng)繼續(xù)保持系統(tǒng)正常運作。容錯是很重要的一個要求。
2) 系統(tǒng)規(guī)模大了以后,很容易出現(xiàn)“異構(gòu)“的情況,如原有模塊MySQL表引擎是MyISAM的,是不支持事務(wù)的,而新上的模塊又采用了InnoDB表引擎,在這種情況下,DAL應(yīng)能對原有模塊進行優(yōu)雅降級。
3)失敗恢復也是要考慮的,失敗后,需要把失敗前駐留在內(nèi)存中的消息找回來。
4) 另外,DAL本身也在快速的迭代當中,升級是很經(jīng)常的事,應(yīng)能進行在線熱升級(不重啟原有服務(wù))。

三)良好的性能。
對于根據(jù)Id來取記錄的查詢,在緩存命中的情況下,應(yīng)該達到和Memcached不相上下的讀取速度。在緩存不命中的情況下,則應(yīng)該充分利用分庫分表和并行計算的優(yōu)勢,最大化地提高查詢的效率。對于修改型查詢,掛在上面的監(jiān)聽器,不應(yīng)該影響性能。

四)系統(tǒng)可監(jiān)控。
資源占用情況,命中率如何,系統(tǒng)當前壓力怎樣等等,都應(yīng)該是可知的。應(yīng)該有報警機制,當壓力到達一個閥值以后,通知相關(guān)人員進行處理。還應(yīng)該有詳細的錯誤日志,便于排查問題。

五)安全。
沒有SQL注入問題;避免或盡量減少分表和索引表之間的數(shù)據(jù)不一致問題等等。

六)易于編程。
需要設(shè)計一套簡單好用的API,便于應(yīng)用程序的開發(fā)。API必須是自完備的,應(yīng)用開發(fā)者不需要太費力就能記住的。
應(yīng)用開發(fā)人員不再關(guān)心分庫分表問題,不再關(guān)心緩存問題, 特別是緩存清除問題。甚至不再關(guān)心后端的數(shù)據(jù)庫是MySQL,還是Oracle,或者是其它。

七)可定制、可擴展、可維護的架構(gòu)設(shè)計。
像連接池組件、緩存組件、查詢分析組件、消息隊列組件、通訊協(xié)議等等不應(yīng)該寫死,應(yīng)設(shè)計成可方便定制的。還應(yīng)該提供足夠的鉤子用于擴展。只有這樣,DAL 的架構(gòu)才是靈活的、擁抱變化的。簡單說,我們定的是機制,提供的是策略;機制是軟件目標和宗旨的體現(xiàn),一般是不能輕易改變的,而策略則應(yīng)當是能比較簡單地進行切換的。

這里面,每一點都可以說說,還是在以后的博客里,再來詳細和大家討論吧。


JavaEye:5.分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)應(yīng)用的主要場景是什么?能否詳細比較一下分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)和類似產(chǎn)品比如hibernate的區(qū)別嗎?

許超前:DAL比較適用于大中型網(wǎng)站,對于想提高系統(tǒng)負載能力及響應(yīng)速度的小型網(wǎng)站也是適用的,但可能獲得的好處不如大中型網(wǎng)站那么明顯。

DAL和Hibernate兩者不具有可比性,從出發(fā)點來看就不同,DAL一開始是為了提高網(wǎng)站的負載能力,而Hibernate則是為了能更快地開發(fā)Java應(yīng)用。手機之家采用混合編程,上層應(yīng)用不一定是用Java寫的,要讓(非Java)程序員對每個模塊涉及到的表結(jié)構(gòu)都用Java實體類寫一遍,不太現(xiàn)實。相反,我們采取了不同的思考方式,我們的程序員面向的是表和記錄,而不是實體類和實體對象。雖然,DAL也有Mapping的概念,但是它的Mapping是指邏輯表到物理表的Mapping,而不是Java對象到數(shù)據(jù)庫模式的Mapping。DAL的邏輯表可能對應(yīng)著多個物理表,程序員看到的是邏輯表,不用關(guān)心后面有多少個物理表。

MySQL Proxy也提供了一些類似的特性,DAL與它的第一個不同在于,我們的緩存處理是內(nèi)置的,我們從設(shè)計之初就特別認真地考慮緩存這塊,而MySQL Proxy得自己寫Lua腳本。第二個不同在于,我們針對的不僅僅是MySQL這一種數(shù)據(jù)庫。而且,我們還有很多其它的事情要做。

另外,國內(nèi)還有一個開源項目叫Amoeba。Amoeba關(guān)注的領(lǐng)域是切分,在這個領(lǐng)域,Amoeba對概念的抽象還是不錯的。DAL更像是一個完整的系統(tǒng),當然,也可以只用DAL來做切分,其它的邏輯自己編寫,想擁有哪些特性都是可配置的。這樣設(shè)計一個是為了易用,一拿來就能用,另一個是為了能更好的和現(xiàn)有的解決方案(如Hibernate)集成,雖然DAL在很多方面都可以取代它們(如Hibernate)。

最后,我相信,肯定還存在很多類似的解決方案,只是我們不曾得知;蛟S是過于定制化了,或許是還不夠成熟。。。

JavaEye:6.目前大概有多少用戶在使用分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)?

許超前:目前DAL主要用在手機之家網(wǎng)站上面,當然,還有其它的項目也在用。

JavaEye:7.目前分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer) 開發(fā)的技術(shù)難點是哪里?

許超前:要說技術(shù)難點,我覺得有以下幾點:

一)如何降低CPU負載及減少內(nèi)存占用。

二)如何提高查詢條件的分析速度。

三)如何更有效地路由到相應(yīng)的庫和表上。

四)如何提高緩存的命中率。

五)如何更有效的進行數(shù)據(jù)復制。


JavaEye:8.你每周大概花多少時間在分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)項目上面?

許超前:每周大概80個小時左右。

JavaEye:9.開發(fā)分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)帶給你最大的收獲是什么?

許超前:一)貴在堅持。一個長開發(fā)周期的軟件,到了后面,不僅是對開發(fā)人員體力、智力的綜合考驗,更是對開發(fā)人員心理承受能力的考驗,因為這時會有來自各方的及自發(fā)的壓力。如果能堅持下去,扛過這一關(guān),事情往往就成了一半。

二)找一些和你有共同目標的人一塊共事。否則會耗費大量的溝通成本。

三)用數(shù)據(jù)說話。事務(wù)都在變化當中,幾年前的經(jīng)驗,也許到今天就不靈了。而且很多事情并不是像我們想象得那樣去發(fā)展。

四)中國不打折。

JavaEye:10.開發(fā)分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)的roadmap是什么?近期遠期的開發(fā)計劃計劃是什么?

許超前:接下來的版本要做的事有這幾個方面:

一)更多的協(xié)議開發(fā),這樣才能作為透明代理使用,比如我們的PMA也可以使用了。

二)數(shù)據(jù)庫廠商中立的數(shù)據(jù)復制。

三)嵌入式API,考慮和Spring、Guice等集成,方便Java應(yīng)用開發(fā)人員的使用。


JavaEye:11.你的開發(fā)環(huán)境是什么? 使用什么操作系統(tǒng),和IDE?

許超前:一直用Linux操作系統(tǒng),現(xiàn)在是Ubuntu,IDE用Eclipse。

JavaEye:12.開發(fā)分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)項目是如何推廣的?未來有什么推廣方面的計劃嗎?

許超前:DAL目前只在內(nèi)部項目中使用。等足夠成熟了,我們會采取一系列辦法進行推廣的。


JavaEye:13.通過開發(fā)開發(fā)分布式(Distributed)數(shù)據(jù)訪問層(Data Access Layer)項目 ,你對中國的開源軟件現(xiàn)狀有什么看法?對國內(nèi)軟件開發(fā)人員做開源項目有什么感受和想法嗎?

許超前:我們的IT行業(yè)起步晚,開源文化還不夠深入人心,再加上我們中的大部份人還在為生計發(fā)愁,所以對開源事業(yè)上心的人還是少數(shù)。因此,和歐美發(fā)達國家比起來,我們的開源事業(yè)相對滯后。
我由衷地敬佩那些做開源項目的開發(fā)人員,如果可能,我也希望多做些開源軟件和大家一塊分享。


JavaEye:14.作為一個JavaEye的會員,你對JavaEye網(wǎng)站有什么建議和意見嗎?

許超前:想辦法讓老人多發(fā)言,同時也給新人提供一個學習成長的地方。比如可以弄個師徒頻道(有點SNS的味道),老人可以招學徒,新人可以拜師傅。

 

 


安徽新華電腦學校專業(yè)職業(yè)規(guī)劃師為你提供更多幫助【在線咨詢
四虎影视精品永久免费网站| 午夜在线亚洲| 亚洲第一页乱| 免费的黄色小视频| 国产综合成人观看在线| 国产一区二区高清视频| 台湾毛片| 国产一区二区精品在线观看| 韩国三级视频网站| 久久国产影院| 国产伦久视频免费观看视频| 国产精品1024在线永久免费| 日本特黄一级| 99久久精品国产麻豆| 麻豆污视频| 国产成人啪精品视频免费软件| 国产视频久久久久| 国产91精品系列在线观看| 欧美激情一区二区三区视频| 国产a网| 四虎精品在线观看| 亚洲女初尝黑人巨高清在线观看| 青青青草影院| 九九久久国产精品| 欧美一区二区三区性| 欧美激情一区二区三区在线| 国产一区二区精品久久91| 成人免费观看的视频黄页| 午夜激情视频在线观看| 久久国产精品自由自在| 久久精品欧美一区二区| 韩国三级香港三级日本三级la| 国产激情视频在线观看| 免费毛片播放| 国产福利免费视频| 国产网站免费| 亚洲 激情| 成人免费观看的视频黄页| 欧美日本韩国| 欧美激情一区二区三区视频 | 国产成人精品综合久久久| 国产成+人+综合+亚洲不卡| 国产网站麻豆精品视频| 精品国产一区二区三区久 | 国产网站免费观看| 亚洲精品影院| 日韩字幕在线| 青青久久国产成人免费网站| 91麻豆国产福利精品| 日日夜夜婷婷| 亚欧成人乱码一区二区| 免费一级片在线观看| 成人高清护士在线播放| 99热热久久| 精品久久久久久影院免费| 日本在线不卡视频| 欧美日本免费| 欧美激情一区二区三区在线 | 国产网站免费在线观看| 国产伦精品一区二区三区在线观看| 色综合久久天天综合绕观看| 日本免费看视频| 免费毛片播放| 欧美1卡一卡二卡三新区| 91麻豆国产级在线| 九九精品久久| 欧美大片aaaa一级毛片| 欧美大片a一级毛片视频| 九九久久国产精品| 免费的黄视频| 国产网站在线| 亚洲精品影院久久久久久| 午夜精品国产自在现线拍| 精品久久久久久中文字幕一区 | 日韩男人天堂| 久久国产影视免费精品| 国产91精品一区| 精品国产香蕉伊思人在线又爽又黄| 一本高清在线| 亚洲精品久久久中文字| 一级毛片视频在线观看| 色综合久久天天综合绕观看| 你懂的国产精品| 国产91素人搭讪系列天堂| 国产一区二区高清视频| 欧美激情一区二区三区在线 | 日韩专区一区| 国产一区二区精品| 999精品视频在线| 999久久狠狠免费精品| 九九精品在线| 四虎影视久久| 日韩男人天堂| 日日夜人人澡人人澡人人看免| 欧美激情在线精品video| 91麻豆国产福利精品| 精品视频一区二区| 天天做日日干| 国产不卡在线观看视频| 精品国产一区二区三区久| 毛片电影网| 四虎影视精品永久免费网站| 国产91精品一区二区| 可以免费在线看黄的网站| 国产美女在线观看| 欧美一区二区三区性| 成人a级高清视频在线观看| 欧美一级视频免费| 色综合久久天天综合绕观看| 国产伦理精品| 日韩av成人| 精品国产亚一区二区三区| 日韩av成人| 欧美国产日韩一区二区三区| 国产伦精品一区三区视频| 一级女性全黄生活片免费| 亚洲www美色| 美女免费精品高清毛片在线视| 四虎影视库国产精品一区| 国产激情视频在线观看| 亚欧视频在线| 九九精品在线播放| 日韩中文字幕一区二区不卡| 精品国产一区二区三区久| 成人免费一级纶理片| 欧美激情中文字幕一区二区| 欧美大片一区| 精品国产一区二区三区久 | 国产激情一区二区三区| 你懂的在线观看视频| 一级毛片视频在线观看| 久草免费资源| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 成人免费网站久久久| 国产精品1024在线永久免费| 久草免费在线观看| 久久精品大片| 欧美1卡一卡二卡三新区| 一级女性全黄生活片免费| 国产一区免费观看| 欧美一级视频免费| 国产国产人免费视频成69堂| 日韩专区在线播放| 免费一级片在线观看| 99久久精品国产高清一区二区| 国产极品白嫩美女在线观看看| 中文字幕Aⅴ资源网| 四虎影视精品永久免费网站| a级毛片免费观看网站| 亚洲精品影院久久久久久| 久久99这里只有精品国产| 国产亚洲男人的天堂在线观看| 欧美1区| 日韩中文字幕一区| 精品视频在线观看一区二区 | 国产伦理精品| 亚洲 国产精品 日韩| 日本免费乱理伦片在线观看2018| 久久久久久久久综合影视网| 黄色福利片| 欧美激情在线精品video| 青青久久精品| 免费的黄色小视频| 精品久久久久久中文字幕一区 | 韩国三级视频在线观看| 天天色色色| 黄视频网站免费观看| 精品国产一区二区三区免费| 99色精品| 久久国产精品自由自在| 欧美电影免费看大全| 色综合久久天天综线观看| 欧美1区| 九九干| 99久久精品国产片| 二级特黄绝大片免费视频大片| 四虎影视库国产精品一区| 国产极品精频在线观看| 日本免费乱理伦片在线观看2018| 亚欧成人毛片一区二区三区四区| 亚欧视频在线| 欧美a免费| 中文字幕一区二区三区精彩视频 | 午夜精品国产自在现线拍| 青青久在线视频| 欧美18性精品| 黄视频网站免费观看| 亚欧成人毛片一区二区三区四区| 日本特黄一级| 精品视频在线看| 久久99中文字幕| 亚洲精品中文字幕久久久久久| 999精品在线| 成人免费高清视频| 欧美激情一区二区三区在线| 麻豆系列国产剧在线观看| 免费一级片在线观看| 欧美一级视频免费| 国产成人精品在线| 二级特黄绝大片免费视频大片|