出版時間:2010-12-1 出版社:機(jī)械工業(yè)出版社華章公司 作者:Dan Sanderson 頁數(shù):350 譯者:唐學(xué)韜,何繼業(yè)
Tag標(biāo)簽:無
前言
在互聯(lián)網(wǎng)上,事物的流行總是迅速的也是短暫的。如果某個受歡迎的博客稍微提到了一下你的網(wǎng)站,就能夠立刻給你帶去30萬潛在顧客,人們都想要知道你是誰以及你能給他們帶來什么。不過,如果你只是一個剛剛起步的小公司,那么你所擁有的硬件和軟件則不大可能有本事應(yīng)付如此大的流量。也許你已經(jīng)很明智地建立了一個能夠應(yīng)付每小時3萬次訪問的網(wǎng)站;在最初的6個月中,你實際的需要也就只是這樣了。然而在大負(fù)載的時候,對于另外27萬也想來隨便瞅瞅的用戶而言,這樣的系統(tǒng)慢得讓你甚至連公司的標(biāo)志都顯示不出來。而且,那些潛在客戶也不大可能會在負(fù)載趨于平穩(wěn)之后再回來。最好不要一開始就花費時間和金錢去構(gòu)建能夠滿足數(shù)百萬訪客的系統(tǒng),因為那些系統(tǒng)在隨后的幾個月中都只需要應(yīng)付每天幾千的訪客量而已。然而,如果你推遲了構(gòu)建大系統(tǒng)的工作,那么你又可能會錯過利用顧客反饋改進(jìn)產(chǎn)品的機(jī)會。在允許顧客使用產(chǎn)品之前就構(gòu)建大系統(tǒng),搞不好會弄出客戶不想要的東西。小公司通常無法在剛開始的時候就得到一大堆的服務(wù)器。他們所能做的,就是先構(gòu)建一個小的,然后祈禱那些可能出現(xiàn)的系統(tǒng)崩潰不會毀掉他們好不容易積累起來的聲譽(yù)。運氣好的呢,會找到他們的知音,拿到新一輪的投資,停掉功能開發(fā)并重建其產(chǎn)品以應(yīng)對更大的負(fù)載;而那些運氣不好的呢,呃,那就不好說了。不過,現(xiàn)在有了另外一些選擇。諸如Amazon.com以及Microsoft之類的大型互聯(lián)網(wǎng)企業(yè)正在通過一種按使用付費的模式出租他們的大容量系統(tǒng)。你的網(wǎng)站得到這些大型系統(tǒng)的支持,就能夠輕松處理流量上的突發(fā)峰值。此外,由于只需為實際使用的資源付費,所以在流量較低的時候不會出現(xiàn)前期投資浪費的情況。只有當(dāng)你的客戶基數(shù)變大以后,成本才會相應(yīng)地增加。
內(nèi)容概要
本書是一種云計算服務(wù),跟其他的同類產(chǎn)品不同,它提供了一種簡單的應(yīng)用程序構(gòu)建模型,通過這種模型,你可以輕松地構(gòu)建出能夠容納數(shù)百萬用戶的應(yīng)用程序。本書是介紹使用這個強(qiáng)大平臺的專家級實踐指南。高級工程師Dan sanderson將向你講述如何設(shè)計高可伸縮性應(yīng)用程序的方法,以及如何使用App Engine的API和可伸縮的服務(wù)來實現(xiàn)常見的開發(fā)任務(wù)。你將會學(xué)到有關(guān)App Engine的應(yīng)用程序服務(wù)器架構(gòu)、運行時環(huán)境以及可伸縮數(shù)據(jù)存儲區(qū)等知識,還可以學(xué)到一些應(yīng)用程序優(yōu)化方法。 App Engine提供了幾乎無限的計算能力,本書從源代碼方面簡單明了地闡述了其使用方法。
作者簡介
Dan sanderson是一名技術(shù)作者,也是一名軟件工程師。他有十多年的Web領(lǐng)域從業(yè)經(jīng)驗,服務(wù)過的企業(yè)有Amazon.com以及Walt Disney Internet Group等。
書籍目錄
前言第1章 GAE簡介 運行時環(huán)境 靜態(tài)文件服務(wù)器 數(shù)據(jù)存儲區(qū) 實體和屬性 查詢和索引 事務(wù) 服務(wù) GAccount 任務(wù)隊列和計劃任務(wù) 開發(fā)人員工具 管理控制臺 App Engine暫時還做不到的事情 使用入門第2章 創(chuàng)建一個應(yīng)用程序 安裝SDK 安裝Python SDK 安裝Java SDK 開發(fā)應(yīng)用程序 用戶偏好模式 開發(fā)一個Python應(yīng)用程序 開發(fā)一個Java應(yīng)用程序 開發(fā)控制臺 注冊應(yīng)用程序 應(yīng)用程序的ID和標(biāo)題 設(shè)置域名 Apps和身份驗證 上傳應(yīng)用程序 管理控制臺簡介第3章 處理Web請求 App Engine的架構(gòu) 對前端進(jìn)行配置 配置Python應(yīng)用程序 配置Java應(yīng)用程序 域名 應(yīng)用程序的ID和版本號 請求處理器 靜態(tài)文件和資源文件 安全連接 通過GAccount進(jìn)行授權(quán) 應(yīng)用程序是如何運行的 Python運行時環(huán)境 Java運行時環(huán)境 沙盒 應(yīng)用程序緩存 日志 配額限制 請求限制 CPU限制 服務(wù)限制 部署限制 付費配額 有關(guān)資源使用量的頭第4章 數(shù)據(jù)存儲區(qū)實體 實體、鍵和屬性 Python數(shù)據(jù)存儲區(qū)API簡介 Java數(shù)據(jù)存儲區(qū)API簡介 屬性值 字符串、文本和字節(jié)字符串 未設(shè)置與空值 多值屬性 鍵和鍵對象 使用實體 通過鍵獲取實體 查看實體對象 保存實體 刪除實體第5章 數(shù)據(jù)存儲區(qū)查詢 查詢和類別 查詢結(jié)果和鍵GQL Python的查詢API Query類 Python中的GQL 獲取結(jié)果 Keys-Only查詢 Java的查詢API Java中的Keys-Only查詢 索引簡介 自動索引和簡單查詢 單個類別上的所有實體 單個等式篩選條件 大于和小于篩選條件 單個排序規(guī)則 針對鍵的查詢 類別無關(guān)查詢 自定義索引和復(fù)雜查詢 多個排序規(guī)則 多個屬性上的篩選條件 多個等式篩選條件 不等于和IN運算符 未設(shè)置和不編入索引的屬性 排序和值類型 查詢和多值屬性 一個簡單的例子 Pvthon中的MVP MVP和等式篩選條件 MVP和不等式篩選條件 MVP和排序規(guī)則 爆炸式索引 配置索引 Python中的索引配置 Java中的索引配置第6章 數(shù)據(jù)存儲區(qū)事務(wù) 實體和實體組 鍵、路徑和祖先 祖先查詢 事務(wù)中都會發(fā)生些什么 事務(wù)讀 ……第7章 用Python進(jìn)行數(shù)據(jù)建模第8章 Java持久化API第9章 內(nèi)存緩存第10章 獲取URL和Web資源第11章 收發(fā)電子郵件和即時消息第12章 大批量數(shù)據(jù)操作與遠(yuǎn)程訪問第13章 任務(wù)隊列和計劃任務(wù)第14章 Web應(yīng)用程序框架:Django第15章 部署和管理應(yīng)用程序
章節(jié)摘錄
插圖:大部分有用的數(shù)據(jù)模型都含有數(shù)據(jù)類之間的關(guān)系。玩家是公會的成員,書籍評論是關(guān)于書的,消息會被粘貼到消息板上,顧客下訂單,訂單有多個明細(xì)項等。從邏輯或架構(gòu)方面的原因來考慮,兩個事務(wù)可以被建模成各自獨立但又互相關(guān)聯(lián)的類。關(guān)系跟數(shù)據(jù)對象的字段一樣,也是數(shù)據(jù)模型的組成部分。在APP Engine數(shù)據(jù)存儲區(qū)中(以及大部分?jǐn)?shù)據(jù)庫中),最簡單的對兩個對象之間的關(guān)系進(jìn)行建模的方式就是:將一個對象的實體鍵保存為另一個對象的屬性,反之亦然(如果需要)。數(shù)據(jù)存儲區(qū)支持將Kev值保存為一個原生屬性值類型,還提供了一種可以將鍵值編碼為字符串的手段。因此,在對關(guān)系進(jìn)行建模時,你完全不需要得到JPA的任何幫助。不過,由于關(guān)系對數(shù)據(jù)建模很重要,因此JPA也提供了一系列支持關(guān)系的功能。在JPA中,你可以在數(shù)據(jù)模型中定義“所屬關(guān)系”(owned relationship),它通過對修改進(jìn)行管理以強(qiáng)制執(zhí)行約束。通過“所屬關(guān)系”,你可以說某本書有零個或多個書評,JPA將保證不會出現(xiàn)沒有書的書評。如果你刪除了一個B00 k對象,則JPA就會知道還應(yīng)該刪除其所有的Book Review對象。在Java代碼中,這個關(guān)系是用一個字段表示的,而這個字段的類型就是它所關(guān)聯(lián)的數(shù)據(jù)類,這樣也就保證了關(guān)系的每一方都只能用到正確的類。
媒體關(guān)注與評論
毫無疑問,這是一本關(guān)于App Engine的最全面的、最新的參考手冊。如果你已經(jīng)仔細(xì)看完這本書,那么你現(xiàn)在就是App Engirle方面的專家?!? ——Kevin Gibbs GAE項目組長和技術(shù)經(jīng)理
編輯推薦
《GAE編程指南》:了解傳統(tǒng)Web應(yīng)用程序與App Engine應(yīng)用程序之間的區(qū)別。學(xué)習(xí)App EnginO扣Python和Java運行時環(huán)境的具體內(nèi)容。了解APP Engine處理Web請求以及執(zhí)行應(yīng)用程序代碼的方式。學(xué)習(xí)如何使用APP Enginet中的可伸縮的數(shù)據(jù)存儲區(qū),包括查詢、索引、事務(wù)以及數(shù)據(jù)建模等。利用任務(wù)隊列來實現(xiàn)分布式并行計算。熟練地部署和管理應(yīng)用程序。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載