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

App后臺開發(fā)運維和架構實踐

App后臺開發(fā)運維和架構實踐

定 價:¥59.00

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

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

內(nèi)容簡介

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

作者簡介

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

圖書目錄

推薦序 ....................................................................................................................................... 3 前言 ........................................................................................................................................... 5 致謝 ........................................................................................................................................... 7 目錄 ........................................................................................................................................... 8 第 1 章 App 后臺入門 ........................................................................................................... 16 1.1 App 后臺的功能 .................................................................................................................. 16 1.2 App 后臺架構 ...................................................................................................................... 17 1.3 App 和 App 后臺的通信 ..................................................................................................... 19 1.4 App 后臺和 Web 后端的區(qū)別 ............................................................................................ 22 1.5 選擇服務器 ......................................................................................................................... 23 1.6 選擇編程語言 ..................................................................................................................... 24 1.7 快速入門新技術 ................................................................................................................. 25 1.7.1 思維模式 .................................................................................................................. 25 1.7.2 4種快速入門新技術的方法 ................................................................................... 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 測試和修復 Bug ...................................................................................................... 33 1.9.5 評審會議 .................................................................................................................. 34 1.9.6 回顧會議 .................................................................................................................. 34 1.9.7 及時反饋 .................................................................................................................. 34 1.9.8 總結.......................................................................................................................... 34 第 2 章 App 后臺基礎技術 .................................................................................................... 35 2.1 從 App業(yè)務邏輯中提煉 API接口 ..................................................................................... 35 2.1.1 業(yè)務邏輯思維導圖 .................................................................................................. 36 2.1.2 功能—業(yè)務邏輯思維導圖 ...................................................................................... 37 2.1.3 基本功能模塊關系 .................................................................................................. 40 2.1.4 功能模塊接口 UML(設計出 API) ..................................................................... 41 2.1.5 編寫在線 API測試文檔.......................................................................................... 42 2.1.6 設計稿標注 API ...................................................................................................... 45 2.2 設計 API的要點 ................................................................................................................. 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 使用分布式服務實現(xiàn)業(yè)務的復用 ...................................................................................... 54 2.5.1 巨無霸系統(tǒng)的危害 .................................................................................................. 55 2.5.2 遠程服務的優(yōu)點 ...................................................................................................... 56 2.5.3 遠程服務的實現(xiàn) ...................................................................................................... 56 2.6 搜索技術入門 ..................................................................................................................... 59 2.6.1 一個簡單的搜索例子 .............................................................................................. 59 2.6.2 搜索技術的基本原理 .............................................................................................. 60 2.6.3 常見的開源搜索軟件介紹 ...................................................................................... 62 2.7 定時任務 ............................................................................................................................. 65 2.7.1 Linux定時任務 Crontab .......................................................................................... 65 2.7.2 在后臺輕松管理各種各樣的定時任務 .................................................................. 66 第 3 章 App 后臺核心技術 .................................................................................................... 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 更進一步的通信安全 .............................................................................................. 77 3.3 短信服務 ............................................................................................................................. 78 3.3.1 App 后臺發(fā)送短信簡介 .......................................................................................... 78 3.3.2 選擇短信平臺 .......................................................................................................... 78 3.3.3 建立可靠的短信服務 ................................................................................................. 79 3.4 處理表情的一些技巧 ......................................................................................................... 80 3.4.1 表情在 MySQL的存儲 ........................................................................................... 80 3.4.2 當文字中夾帶表情的處理 ...................................................................................... 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 文件云存儲服務 ...................................................................................................... 99 3.9.2 架設文件系統(tǒng) .......................................................................................................... 99 3.10 ELK日志分析平臺 ......................................................................................................... 101 3.10.1 基本模塊 .............................................................................................................. 101 3.10.2 日志分析流程 ...................................................................................................... 102 3.11 Docker構建一致的開發(fā)環(huán)境 ......................................................................................... 103 3.11.1 Docker 原理 ......................................................................................................... 103 3.11.2 搭建一致的開發(fā)環(huán)境 .......................................................................................... 104 第 4 章 Linux——App 后臺應用最廣泛的系統(tǒng) .................................................................... 107 4.1 基本的系統(tǒng)優(yōu)化 ............................................................................................................... 107 4.1.1 開機自啟動服務優(yōu)化 ............................................................................................ 107 4.1.2 增大文件描述符 .................................................................................................... 109 4.2 常用的命令 ....................................................................................................................... 110 4.2.1 全面了解系統(tǒng)資源情況——top ........................................................................... 110 4.2.2 顯示進程狀態(tài)——ps ............................................................................................ 115 4.2.3 查看網(wǎng)絡相關信息——netstat ............................................................................. 116 4.2.4 查看某個進程打開的所有文件——lsof .............................................................. 118 4.2.5 跟蹤數(shù)據(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 進程管理利器——superivisor .............................................................................. 122 4.3 故障案例分析 ................................................................................................................... 125 第 5 章 Nginx——App 后臺 HTTP 服務的利器 ................................................................... 126 5.1 簡介 ................................................................................................................................... 126 5.2 基本原理 ........................................................................................................................... 127 5.2.1 工作模型 ................................................................................................................ 127 5.2.2 進程解析 ................................................................................................................ 128 5.3 常用配置 ........................................................................................................................... 129 5.3.1 Nginx的全局配置 ................................................................................................. 130 5.3.2 event配置 .............................................................................................................. 130 5.3.3 http配置 ................................................................................................................. 131 5.3.4 負載均衡配置 ........................................................................................................ 133 5.3.5 server虛擬主機配置 ............................................................................................. 134 5.3.6 location配置 .......................................................................................................... 134 5.3.7 HTTPS的配置 ....................................................................................................... 135 5.3.8 下載 App 的配置 ................................................................................................... 136 5.3.9 生產(chǎn)環(huán)境中修改配置的良好習慣 ........................................................................ 136 5.4 性能統(tǒng)計 ........................................................................................................................... 136 5.5 實現(xiàn)負載均衡的方案 ....................................................................................................... 137 5.6 用 Nginx 處理業(yè)務邏輯 .................................................................................................... 139 第 6 章 MySQL——App 后臺最常用的數(shù)據(jù)庫 .................................................................... 140 6.1 基本架構 ........................................................................................................................... 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 字段盡可能地設置為 NOT NULL ....................................................................... 146 6.5 硬件優(yōu)化 ........................................................................................................................... 147 6.5.1 增加物理內(nèi)存 ........................................................................................................ 147 6.5.2 增加應用緩存 ........................................................................................................ 147 6.5.3 用固態(tài)硬盤代替機械硬盤 .................................................................................... 148 6.5.4 SSD 硬盤+SATA硬盤混合存儲方案 .................................................................. 149 6.6 架構優(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 靈活的存儲結構 ............................................................................................................... 158 6.10 故障排除案例 ................................................................................................................. 159 第 7 章 Redis——App 后臺高性能的緩存系統(tǒng) ................................................................... 160 7.1 Redis簡介 ......................................................................................................................... 160 7.2 Redis的常用數(shù)據(jù)結構及應用場景 .................................................................................. 161 7.2.1 string——存儲簡單的數(shù)據(jù) ................................................................................... 162 7.2.2 hash——存儲對象的數(shù)據(jù) .................................................................................... 163 7.2.3 list——模擬隊列操作 ........................................................................................... 165 7.2.4 set——無序且不重復的元素集合 ....................................................................... 167 7.2.5 sorted set——有序且不重復的元素集合 ............................................................. 168 7.3 內(nèi)存優(yōu)化 ........................................................................................................................... 170 7.3.1 監(jiān)控內(nèi)存使用的狀況 ............................................................................................ 170 7.3.2 優(yōu)化存儲結構 ........................................................................................................ 170 7.3.3 限制使用的最大內(nèi)存 ............................................................................................ 172 7.3.4 設置過期時間 ........................................................................................................ 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 云服務器上的集群服務 ........................................................................................ 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 核心機制解析 ................................................................................................................... 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ù)據(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版本的改進 ................................................................................................ 205 8.6.1 靈活的存儲架構 .................................................................................................... 206 8.6.2 性能提升 7~10 倍 .................................................................................................. 206 8.6.3 存儲空間最多減少 80% ....................................................................................... 207 8.6.4 運維成本最多降低 95% ....................................................................................... 207 第 9 章 App 后臺架構剖析 .................................................................................................. 208 9.1 聊天 App 后臺架構 ........................................................................................................... 208 9.1.1 移動互聯(lián)網(wǎng)的網(wǎng)絡特性 ........................................................................................ 209 9.1.2 協(xié)議........................................................................................................................ 212 9.1.3 整體架構 ................................................................................................................ 218 9.2 社交 App 后臺架構 ........................................................................................................... 221 9.2.1 基本表結構 ............................................................................................................ 222 9.2.2 推拉模式 ................................................................................................................ 223 9.2.3 數(shù)據(jù)庫架構的演進 ................................................................................................ 225 9.2.4 緩存架構的演進 .................................................................................................... 229 9.3 LBS App 后臺架構 .......................................................................................................... 234 9.3.1 地理坐標詳解 ........................................................................................................ 235 9.3.2 查找附近的人 ........................................................................................................ 236 9.3.3 基于 MongoDB的 LBS后臺架構演進 ................................................................ 240 9.4 推送服務器后臺架構 ....................................................................................................... 242 9.4.1 Android 推送 ......................................................................................................... 242 9.4.2 iOS推送 ................................................................................................................. 248 9.5 獲得更多 App后臺架構資料 ........................................................................................... 252 第 10 章 App 后臺架構的演進 ............................................................................................. 255 10.1 架構的核心要素 ............................................................................................................. 255 10.1.1 高性能 .................................................................................................................. 256 10.1.2 高可用 .................................................................................................................. 258 10.1.3 可伸縮 .................................................................................................................. 261 10.1.4 可擴展 .................................................................................................................. 262 10.1.5 安全性 .................................................................................................................. 262 10.2 架構選型的要點 ............................................................................................................. 262 10.2.1 用成熟穩(wěn)定的開源軟件 ...................................................................................... 263 10.2.2 盡可能使用云服務 .............................................................................................. 264 10.3 架構的演進 ..................................................................................................................... 268 10.3.1 單機部署 .............................................................................................................. 269 10.3.2 分布式部署 .......................................................................................................... 275 10.3.3 服務化 .................................................................................................................. 277 10.4 架構的特點 ..................................................................................................................... 279 10.4.1 每個 App 的后臺架構不會完全一樣 ................................................................. 279 10.4.2 架構的演進是由業(yè)務驅(qū)動的 .............................................................................. 279 10.4.3 架構不是為了炫耀技術 ...................................................................................... 280

本目錄推薦

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