注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機(jī)/網(wǎng)絡(luò)計算機(jī)組織與體系結(jié)構(gòu)App后臺開發(fā)運(yùn)維和架構(gòu)實踐

App后臺開發(fā)運(yùn)維和架構(gòu)實踐

App后臺開發(fā)運(yùn)維和架構(gòu)實踐

定 價:¥59.00

作 者: 曾健生 著
出版社: 電子工業(yè)出版社
叢編項:
標(biāo) 簽: 程序設(shè)計 計算機(jī)/網(wǎng)絡(luò) 移動開發(fā)

ISBN: 9787121283802 出版時間: 2016-04-01 包裝: 平塑勒
開本: 頁數(shù): 280 字?jǐn)?shù):  

內(nèi)容簡介

  《App 后臺開發(fā)運(yùn)維和架構(gòu)實踐》通過闡述移動互聯(lián)網(wǎng)中 App 后臺開發(fā)的特點(diǎn),梳理了 App 后臺開發(fā)中會遇到的各個技術(shù)點(diǎn),給出了生產(chǎn)環(huán)境常用軟件的實戰(zhàn)運(yùn)維經(jīng)驗總結(jié),剖析了常見 App 后臺技術(shù)架構(gòu)設(shè)計,為讀者呈現(xiàn)一幅包括技術(shù)選型、后臺搭建、性能優(yōu)化、運(yùn)維實踐、架構(gòu)設(shè)計的 App 后臺開發(fā)藍(lán)圖。本書的目標(biāo)讀者是對技術(shù)感興趣的產(chǎn)品經(jīng)理、剛?cè)胄械?App 后臺開發(fā)人員,以及從傳統(tǒng)軟件行業(yè)轉(zhuǎn)向 App 后臺開發(fā)的技術(shù)人員。

作者簡介

  曾健生,曾任職于廣州市贏靖信息科技有限公司,負(fù)責(zé)社交App后臺研發(fā)。目前就職bmob后端云從事云服務(wù)方面的研發(fā)工作。

圖書目錄

推薦序 ....................................................................................................................................... 3 前言 ........................................................................................................................................... 5 致謝 ........................................................................................................................................... 7 目錄 ........................................................................................................................................... 8 第 1 章 App 后臺入門 ........................................................................................................... 16 1.1 App 后臺的功能 .................................................................................................................. 16 1.2 App 后臺架構(gòu) ...................................................................................................................... 17 1.3 App 和 App 后臺的通信 ..................................................................................................... 19 1.4 App 后臺和 Web 后端的區(qū)別 ............................................................................................ 22 1.5 選擇服務(wù)器 ......................................................................................................................... 23 1.6 選擇編程語言 ..................................................................................................................... 24 1.7 快速入門新技術(shù) ................................................................................................................. 25 1.7.1 思維模式 .................................................................................................................. 25 1.7.2 4種快速入門新技術(shù)的方法 ................................................................................... 25 1.8 App 是怎樣煉成的 .............................................................................................................. 26 1.8.1 項目啟動階段 .......................................................................................................... 26 1.8.2 研發(fā)階段 .................................................................................................................. 28 1.8.3 測試階段 .................................................................................................................. 29 1.8.4 正式推出階段 .......................................................................................................... 29 1.9 最適合 App 的開發(fā)模式——敏捷開發(fā) ............................................................................. 30 1.9.1 Sprint 計劃會議 ....................................................................................................... 31 1.9.2 日常開發(fā) .................................................................................................................. 32 1.9.3 每日例會 .................................................................................................................. 33 1.9.4 測試和修復(fù) Bug ...................................................................................................... 33 1.9.5 評審會議 .................................................................................................................. 34 1.9.6 回顧會議 .................................................................................................................. 34 1.9.7 及時反饋 .................................................................................................................. 34 1.9.8 總結(jié).......................................................................................................................... 34 第 2 章 App 后臺基礎(chǔ)技術(shù) .................................................................................................... 35 2.1 從 App業(yè)務(wù)邏輯中提煉 API接口 ..................................................................................... 35 2.1.1 業(yè)務(wù)邏輯思維導(dǎo)圖 .................................................................................................. 36 2.1.2 功能—業(yè)務(wù)邏輯思維導(dǎo)圖 ...................................................................................... 37 2.1.3 基本功能模塊關(guān)系 .................................................................................................. 40 2.1.4 功能模塊接口 UML(設(shè)計出 API) ..................................................................... 41 2.1.5 編寫在線 API測試文檔.......................................................................................... 42 2.1.6 設(shè)計稿標(biāo)注 API ...................................................................................................... 45 2.2 設(shè)計 API的要點(diǎn) ................................................................................................................. 46 2.3 如何選擇合適的數(shù)據(jù)庫產(chǎn)品 .............................................................................................. 50 2.3.1 Redis,MongoDB,MySQL讀寫數(shù)據(jù)的區(qū)別 ...................................................... 50 2.3.2 Redis,MongoDB,MySQL查找數(shù)據(jù)的區(qū)別 ...................................................... 50 2.3.3 Redis,MongoDB,MySQL適用場景 .................................................................. 51 2.4 如何選擇消息隊列軟件 ..................................................................................................... 52 2.4.1 為什么要用消息隊列? .......................................................................................... 52 2.4.2 消息隊列的工作流程 .............................................................................................. 53 2.4.3 常見的一些消息隊列產(chǎn)品 ...................................................................................... 54 2.5 使用分布式服務(wù)實現(xiàn)業(yè)務(wù)的復(fù)用 ...................................................................................... 54 2.5.1 巨無霸系統(tǒng)的危害 .................................................................................................. 55 2.5.2 遠(yuǎn)程服務(wù)的優(yōu)點(diǎn) ...................................................................................................... 56 2.5.3 遠(yuǎn)程服務(wù)的實現(xiàn) ...................................................................................................... 56 2.6 搜索技術(shù)入門 ..................................................................................................................... 59 2.6.1 一個簡單的搜索例子 .............................................................................................. 59 2.6.2 搜索技術(shù)的基本原理 .............................................................................................. 60 2.6.3 常見的開源搜索軟件介紹 ...................................................................................... 62 2.7 定時任務(wù) ............................................................................................................................. 65 2.7.1 Linux定時任務(wù) Crontab .......................................................................................... 65 2.7.2 在后臺輕松管理各種各樣的定時任務(wù) .................................................................. 66 第 3 章 App 后臺核心技術(shù) .................................................................................................... 68 3.1 用戶驗證方案 ..................................................................................................................... 68 3.1.1 使用 HTTPS協(xié)議 .................................................................................................... 68 3.1.2 基本的用戶登錄方案 .............................................................................................. 69 3.2 App 通信安全 ...................................................................................................................... 72 3.2.1 URL簽名 ................................................................................................................. 72 3.2.2 AES對稱加密 ......................................................................................................... 74 3.2.3 更進(jìn)一步的通信安全 .............................................................................................. 77 3.3 短信服務(wù) ............................................................................................................................. 78 3.3.1 App 后臺發(fā)送短信簡介 .......................................................................................... 78 3.3.2 選擇短信平臺 .......................................................................................................... 78 3.3.3 建立可靠的短信服務(wù) ................................................................................................. 79 3.4 處理表情的一些技巧 ......................................................................................................... 80 3.4.1 表情在 MySQL的存儲 ........................................................................................... 80 3.4.2 當(dāng)文字中夾帶表情的處理 ...................................................................................... 80 3.4.3 Openfire中發(fā)送表情引起連接斷開的問題 ........................................................... 81 3.5 高效更新數(shù)據(jù) ..................................................................................................................... 82 3.5.1 內(nèi)容的推拉 .............................................................................................................. 83 3.5.2 數(shù)據(jù)增量更新策略 .................................................................................................. 84 3.6 圖片處理 ............................................................................................................................. 90 3.7 視頻處理 ............................................................................................................................. 91 3.7.1 FFmpeg 簡介 ........................................................................................................... 91 3.7.2 后臺調(diào)用 FFmpeg 的功能 ....................................................................................... 92 3.8 獲取 APK 和 IPA文件里的資源 ........................................................................................ 94 3.8.1 Android 的 APK 文件 .............................................................................................. 94 3.8.2 iOS的 IPA文件 ...................................................................................................... 96 3.9 文件系統(tǒng) ............................................................................................................................. 98 3.9.1 文件云存儲服務(wù) ...................................................................................................... 99 3.9.2 架設(shè)文件系統(tǒng) .......................................................................................................... 99 3.10 ELK日志分析平臺 ......................................................................................................... 101 3.10.1 基本模塊 .............................................................................................................. 101 3.10.2 日志分析流程 ...................................................................................................... 102 3.11 Docker構(gòu)建一致的開發(fā)環(huán)境 ......................................................................................... 103 3.11.1 Docker 原理 ......................................................................................................... 103 3.11.2 搭建一致的開發(fā)環(huán)境 .......................................................................................... 104 第 4 章 Linux——App 后臺應(yīng)用最廣泛的系統(tǒng) .................................................................... 107 4.1 基本的系統(tǒng)優(yōu)化 ............................................................................................................... 107 4.1.1 開機(jī)自啟動服務(wù)優(yōu)化 ............................................................................................ 107 4.1.2 增大文件描述符 .................................................................................................... 109 4.2 常用的命令 ....................................................................................................................... 110 4.2.1 全面了解系統(tǒng)資源情況——top ........................................................................... 110 4.2.2 顯示進(jìn)程狀態(tài)——ps ............................................................................................ 115 4.2.3 查看網(wǎng)絡(luò)相關(guān)信息——netstat ............................................................................. 116 4.2.4 查看某個進(jìn)程打開的所有文件——lsof .............................................................. 118 4.2.5 跟蹤數(shù)據(jù)到達(dá)主機(jī)所經(jīng)路由——traceroute ........................................................ 119 4.2.6 文件下載/上傳工具——“ssh secure shell client”和“l(fā)rzsz” ......................... 119 4.2.7 查看程序的依賴庫——LD_DEBUG ................................................................... 121 4.2.8 進(jìn)程管理利器——superivisor .............................................................................. 122 4.3 故障案例分析 ................................................................................................................... 125 第 5 章 Nginx——App 后臺 HTTP 服務(wù)的利器 ................................................................... 126 5.1 簡介 ................................................................................................................................... 126 5.2 基本原理 ........................................................................................................................... 127 5.2.1 工作模型 ................................................................................................................ 127 5.2.2 進(jìn)程解析 ................................................................................................................ 128 5.3 常用配置 ........................................................................................................................... 129 5.3.1 Nginx的全局配置 ................................................................................................. 130 5.3.2 event配置 .............................................................................................................. 130 5.3.3 http配置 ................................................................................................................. 131 5.3.4 負(fù)載均衡配置 ........................................................................................................ 133 5.3.5 server虛擬主機(jī)配置 ............................................................................................. 134 5.3.6 location配置 .......................................................................................................... 134 5.3.7 HTTPS的配置 ....................................................................................................... 135 5.3.8 下載 App 的配置 ................................................................................................... 136 5.3.9 生產(chǎn)環(huán)境中修改配置的良好習(xí)慣 ........................................................................ 136 5.4 性能統(tǒng)計 ........................................................................................................................... 136 5.5 實現(xiàn)負(fù)載均衡的方案 ....................................................................................................... 137 5.6 用 Nginx 處理業(yè)務(wù)邏輯 .................................................................................................... 139 第 6 章 MySQL——App 后臺最常用的數(shù)據(jù)庫 .................................................................... 140 6.1 基本架構(gòu) ........................................................................................................................... 140 6.2 選擇版本 ........................................................................................................................... 141 6.3 配置文件詳解 ................................................................................................................... 142 6.4 軟件優(yōu)化 ........................................................................................................................... 144 6.4.1 正確使用 MyISAM和 InnoDB存儲引擎 ............................................................ 144 6.4.2 正確使用索引 ........................................................................................................ 145 6.4.3 避免使用 select * ................................................................................................... 146 6.4.4 字段盡可能地設(shè)置為 NOT NULL ....................................................................... 146 6.5 硬件優(yōu)化 ........................................................................................................................... 147 6.5.1 增加物理內(nèi)存 ........................................................................................................ 147 6.5.2 增加應(yīng)用緩存 ........................................................................................................ 147 6.5.3 用固態(tài)硬盤代替機(jī)械硬盤 .................................................................................... 148 6.5.4 SSD 硬盤+SATA硬盤混合存儲方案 .................................................................. 149 6.6 架構(gòu)優(yōu)化 ........................................................................................................................... 149 6.6.1 分表........................................................................................................................ 150 6.6.2 讀寫分離 ................................................................................................................ 151 6.6.3 分庫........................................................................................................................ 153 6.7 SQL慢查詢分析 ............................................................................................................... 156 6.8 云數(shù)據(jù)庫簡介 ................................................................................................................... 157 6.9 靈活的存儲結(jié)構(gòu) ............................................................................................................... 158 6.10 故障排除案例 ................................................................................................................. 159 第 7 章 Redis——App 后臺高性能的緩存系統(tǒng) ................................................................... 160 7.1 Redis簡介 ......................................................................................................................... 160 7.2 Redis的常用數(shù)據(jù)結(jié)構(gòu)及應(yīng)用場景 .................................................................................. 161 7.2.1 string——存儲簡單的數(shù)據(jù) ................................................................................... 162 7.2.2 hash——存儲對象的數(shù)據(jù) .................................................................................... 163 7.2.3 list——模擬隊列操作 ........................................................................................... 165 7.2.4 set——無序且不重復(fù)的元素集合 ....................................................................... 167 7.2.5 sorted set——有序且不重復(fù)的元素集合 ............................................................. 168 7.3 內(nèi)存優(yōu)化 ........................................................................................................................... 170 7.3.1 監(jiān)控內(nèi)存使用的狀況 ............................................................................................ 170 7.3.2 優(yōu)化存儲結(jié)構(gòu) ........................................................................................................ 170 7.3.3 限制使用的最大內(nèi)存 ............................................................................................ 172 7.3.4 設(shè)置過期時間 ........................................................................................................ 172 7.4 集群 ................................................................................................................................... 174 7.4.1 客戶端分片 ............................................................................................................ 174 7.4.2 Twemproxy ............................................................................................................ 175 7.4.3 Codis ...................................................................................................................... 176 7.4.4 Redis 3.0集群 ........................................................................................................ 179 7.4.5 云服務(wù)器上的集群服務(wù) ........................................................................................ 180 7.5 持久化 ............................................................................................................................... 180 7.5.1 RDB ....................................................................................................................... 181 7.5.2 AOF........................................................................................................................ 182 7.6 故障排除案例 ................................................................................................................... 184 第 8 章 MongoDB——App 后臺新興的數(shù)據(jù)庫 .................................................................... 185 8.1 簡介 ................................................................................................................................... 185 8.2 核心機(jī)制解析 ................................................................................................................... 186 8.2.1 MMAP(內(nèi)存文件映射) .................................................................................... 186 8.2.2 Journal日志 ........................................................................................................... 187 8.3 入門 ................................................................................................................................... 187 8.3.1 基本操作 ................................................................................................................ 188 8.3.2 數(shù)組操作 ................................................................................................................ 190 8.3.3 實例演示 MySQL和 MongoDB設(shè)計數(shù)據(jù)庫的區(qū)別 .......................................... 191 8.4 高可用集群 ....................................................................................................................... 195 8.4.1 主從........................................................................................................................ 195 8.4.2 副本集 .................................................................................................................... 196 8.4.3 分片........................................................................................................................ 198 8.5 LBS——地理位置查詢 .................................................................................................... 200 8.6 MongoDB 3.0版本的改進(jìn) ................................................................................................ 205 8.6.1 靈活的存儲架構(gòu) .................................................................................................... 206 8.6.2 性能提升 7~10 倍 .................................................................................................. 206 8.6.3 存儲空間最多減少 80% ....................................................................................... 207 8.6.4 運(yùn)維成本最多降低 95% ....................................................................................... 207 第 9 章 App 后臺架構(gòu)剖析 .................................................................................................. 208 9.1 聊天 App 后臺架構(gòu) ........................................................................................................... 208 9.1.1 移動互聯(lián)網(wǎng)的網(wǎng)絡(luò)特性 ........................................................................................ 209 9.1.2 協(xié)議........................................................................................................................ 212 9.1.3 整體架構(gòu) ................................................................................................................ 218 9.2 社交 App 后臺架構(gòu) ........................................................................................................... 221 9.2.1 基本表結(jié)構(gòu) ............................................................................................................ 222 9.2.2 推拉模式 ................................................................................................................ 223 9.2.3 數(shù)據(jù)庫架構(gòu)的演進(jìn) ................................................................................................ 225 9.2.4 緩存架構(gòu)的演進(jìn) .................................................................................................... 229 9.3 LBS App 后臺架構(gòu) .......................................................................................................... 234 9.3.1 地理坐標(biāo)詳解 ........................................................................................................ 235 9.3.2 查找附近的人 ........................................................................................................ 236 9.3.3 基于 MongoDB的 LBS后臺架構(gòu)演進(jìn) ................................................................ 240 9.4 推送服務(wù)器后臺架構(gòu) ....................................................................................................... 242 9.4.1 Android 推送 ......................................................................................................... 242 9.4.2 iOS推送 ................................................................................................................. 248 9.5 獲得更多 App后臺架構(gòu)資料 ........................................................................................... 252 第 10 章 App 后臺架構(gòu)的演進(jìn) ............................................................................................. 255 10.1 架構(gòu)的核心要素 ............................................................................................................. 255 10.1.1 高性能 .................................................................................................................. 256 10.1.2 高可用 .................................................................................................................. 258 10.1.3 可伸縮 .................................................................................................................. 261 10.1.4 可擴(kuò)展 .................................................................................................................. 262 10.1.5 安全性 .................................................................................................................. 262 10.2 架構(gòu)選型的要點(diǎn) ............................................................................................................. 262 10.2.1 用成熟穩(wěn)定的開源軟件 ...................................................................................... 263 10.2.2 盡可能使用云服務(wù) .............................................................................................. 264 10.3 架構(gòu)的演進(jìn) ..................................................................................................................... 268 10.3.1 單機(jī)部署 .............................................................................................................. 269 10.3.2 分布式部署 .......................................................................................................... 275 10.3.3 服務(wù)化 .................................................................................................................. 277 10.4 架構(gòu)的特點(diǎn) ..................................................................................................................... 279 10.4.1 每個 App 的后臺架構(gòu)不會完全一樣 ................................................................. 279 10.4.2 架構(gòu)的演進(jìn)是由業(yè)務(wù)驅(qū)動的 .............................................................................. 279 10.4.3 架構(gòu)不是為了炫耀技術(shù) ...................................................................................... 280

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號