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