Home | 簡體中文 | 繁體中文 | 雜文 | 打賞(Donations) | ITEYE 博客 | OSChina 博客 | Facebook | Linkedin | 知乎專欄 | Search | Email

Netkiller Architect 手札

Multi-dimension Architecture Design & Implementation / Full Stack Architect

Mr. Neo Chan, 陳景峯(BG7NYT)


中國廣東省深圳市龍華新區民治街道溪山美地
518131
+86 13113668890


文檔尚未完成,請勿轉載!

版權聲明

轉載請與作者聯繫,轉載時請務必標明文章原始出處和作者信息及本聲明。

文檔出處:
http://netkiller.github.io
http://netkiller.sourceforge.net

微信掃瞄二維碼進入 Netkiller 微信訂閲號

QQ群:128659835 請註明“讀者”

$Date: 2013-02-04 09:33:18 +0800 (Mon, 04 Feb 2013) $


目錄

1. 自述
1.1. 系列文檔
1.2. 作者簡介
1.3. 寫給讀者
1.4. 文檔下載
1.5. 打賞(Donations)
1.5.1. 微信(Wechat)
1.5.2. 支付寶(Alipay)
1.5.3. PayPal Donations
1.5.4. 銀行(Bank)
I. Multi-dimension Architecture
1. Architecture Overview
1.1. CDN (Content Delivery Network)
2. Enterprise Architecture
2.1. 倉庫管理系統(warehouse management system)
3. Systems architecture(系統架構)
3.1. 集群(Cluster)
3.1.1. 負載均衡
3.1.1.1. DNS負載均衡
3.1.1.2. 軟件四層交換負載均衡
3.1.1.3. 應用層負載均衡
3.1.2. 高可用性集群
3.1.3. 負載均衡設備
3.1.4. 會話保持
3.1.5. 健康狀態檢查
3.2. 緩存技術
3.2.1. 瀏覽器緩存
3.2.1.1. Expires
3.2.1.2. If-Modified-Since / Last-Modified
3.2.1.3. ETag / If-None-Match
3.2.2. CDN/逆向代理緩存
3.2.3. 負載均衡設備
3.2.4. WEB伺服器緩存
3.2.5. 應用程序緩存
3.2.6. 資料庫緩存
3.3. 靜態化
3.3.1. 生成方式
3.3.2. 抓取方式
3.3.3. 偽靜態化
3.3.4. 混合方式
3.3.5. 靜態化中的動態內容
3.4. 多媒體數據分離
3.4.1. 圖片伺服器分離
3.4.2. 目錄層次規劃
3.4.3. 多域名訪問
3.5. 壓縮數據傳輸
3.6. 時間同步
3.7. 郵件系統
3.7.1. Mailing List
3.8. 日誌集中管理
3.8.1. 系統日誌
3.8.2. 應用程序日誌
3.9. SSL
3.10. Storage 存儲
3.10.1. 存儲種類
3.10.1.1. Direct Attached Storage
3.10.1.2. Network-attached storage
3.10.1.3. Storage area network
3.10.2. RAID
3.10.2.1. 緩存伺服器
3.10.2.2. Web 伺服器
3.10.2.3. 資料庫
3.10.2.4. 數據備份
3.10.3. File System 檔案系統
3.10.3.1. Distributed File System(DFS)
3.10.4. 數據訪問協議
3.10.5. 數據管理
3.10.5.1. Share 共享
3.10.5.2. Mirror 遠程鏡像同步
3.10.5.3. 壓縮與重複數據消除
3.10.5.4. Backup 備份與恢復
3.10.5.5. 故障報告
II. Database Modeling Design
4. 關係型資料庫設計
4.1. 數據字典
4.2. 用戶帳號表
4.2.1. 用戶註冊鍵盤跟蹤表設計
4.3. 分類表設計
4.3.1. 樹形分類表
4.3.2. 多對多分類
4.3.3. 快速檢索子分類設計
4.3.4. 計算節點數量
4.3.5. Example
4.4. 文章表設計
4.4.1. 分區表設計
4.4.2. Title性能優化
4.5. 評論表
4.6. 記錄點擊率,閲讀次數,及評分表
4.7. 產品屬性表
4.7.1. 簡單實現
4.7.2. 實現屬性組管理
4.7.3. 可編輯屬表
4.8. 商品庫存表
4.9. 國際化語言表
4.10. Workflow
4.11. 內容版本控制
4.12. logging 日誌表的設計
4.13. uuid 替代傳統序列 id
4.14. 動態配置表
4.14.1. 配置表歷史記錄
4.15. 驗證碼
4.16. 手機歸屬地資料庫表
4.17. 數據檢查
4.17.1. 身份證校驗
4.18. 創建與修改時間
4.19. 在綫用戶表
4.20. HTML TO Text
4.21. SNS 資料庫設計
4.21.1. people 表
4.21.2. firend 表
4.21.3. 演示
4.21.4. network 表
4.22. PostgreSQL 所特有資料庫設計
4.22.1. 國家地區表的設計
4.22.2. 話題討論表的設計
4.22.3. 賬戶表/餘額表/消費儲蓄表
5. 資料庫安全
5.1. 保護表
5.2. 保護表欄位
5.3. 時間一致性
5.4. 為數據安全而分庫
5.5. 內容版本控制,撰改留痕
5.6. 用戶/角色認證
5.7. Token 認證
5.8. 數據加密
5.8.1. AES_ENCRYPT / AES_DECRYPT
5.8.2. 加密欄位
5.9. 開發加密插件開發
6. Sharding
6.1. horizontal
6.2. vertical
6.3. 新聞資料庫分表案例
7. 資料庫並行訪問控制
7.1. 防止並行顯示
8. 數據與應用程序間通信
8.1. 管道通信
8.1.1. 背景
8.1.2. 解決思路
8.1.3. Mysql plugin
8.1.4. plugin 的開發與使用
8.1.5. 插件如何使用
8.1.6. 部署相關問題
8.2. 消息隊列
8.2.1. 背景
8.2.2. 應用場景
8.2.3. Mysql plugin
8.2.4. plugin 的開發與使用
8.2.5. 插件如何使用
8.3. 資料庫與外界檔案
8.3.1. 背景
8.3.2. 解決思路
8.3.3. 解決方案
8.3.4. plugin 的開發與使用
8.3.5. 在事務中使用該插件
8.3.6. 通過觸發器調用圖片處理函數
8.4. Socket 方式
8.4.1. UDP
9. NoSQL OOD(Object-Oriented Design)
9.1. MongoDB
9.1.1. 配置表 config
9.1.2. 日誌表
9.2. Cassandra
9.2.1. User And Profile
9.2.2. Category
9.2.3. Article
9.2.4. Product and ProductAttribute
9.2.5. Address
9.2.6. 練習
10. 數據屬性
10.1. 布爾狀態
10.2. 流狀態
10.3. 商品屬性
10.3.1. 鞋
10.3.2. 褲子
10.3.3. 服裝
10.3.4. 內衣
10.3.5. 隱形眼鏡
10.3.6. 戒指
10.4. 手機號碼分配
10.5. 身份證
III. Software architecture (軟件架構)
11. Project
11.1. 開源模式
11.2. 開發語言及平台
11.2.1. 分層架構
11.2.2. Web 2.0
11.2.3. 雲計算
11.2.4. 跨平台
11.2.5. 編譯語言比腳本語言安全
11.2.6. 封裝重用
11.2.7. 相關的工具
12. Design pattern (設計模式)
12.1. Singleton 單件模式
13. AOP(Aspect Oriented Programming)
14. Framework Design
14.1. 開發框架 Framework
14.1.1. HMVC
14.1.2. REST
14.1.3. SNA (Shared Nothing Architecture)
14.1.4. 其他
14.2. MVC Framework Design (設計MVC框架)
14.2.1. HMVC Framework
14.3. REST
14.3.1. RESTful JSON API
14.3.2. Ajax 與 RESTful 跨域
14.4. Service-oriented architecture (SOA)
14.4.1. SOAP實現
14.4.2. MQ 實現
14.5. Dispatcher MVC核心分發器
14.5.1. URL設計
14.5.2. Dispatcher 的實現方式
14.6. Plugin & Hook 設計與實現
14.6.1. 插件管理平台
14.6.2. 介面定義
14.6.3. 插件
14.6.4. 測試
14.7. Interface
14.7.1. 訪問介面協議
14.7.2. 介面性能問題
14.7.3. 介面安全問題
14.8. Javascript Framework
14.8.1. Minify JS
14.9. 模板(template)
14.9.1. HTML 頁面優化
14.10. Session/Cookie
14.10.1. Session
14.10.2. Session 共享
14.10.3. Cookie
14.11. 國際化 Locale database。
14.11.1. Unicode
14.11.2. 繁簡轉換
14.12. 資料庫訪問
14.12.1. CRUD
14.12.2. Active Record
14.12.3. OR Mapping
14.13. Cache
14.13.1. 頁面緩存
14.13.2. 局部緩存
14.14. Single sign-on (SSO) 單點登錄
14.15. 搜索引擎
14.16. Synchronous/Asynchronous
14.17. Message Queuing
14.18. Hash
14.19. Sharding 垂直/水平切割
14.19.1. 面向服務
14.19.2. 面向資料庫
14.20. 日誌系統
14.21. Cache
14.21.1. CDN (Content Delivery Network) 與反向代理
14.21.2. HTTP Cache
14.21.3. Cache 生存時間
14.22. i18n 國際化
14.22.1. 數組方式
14.22.2. 資料庫方式
14.22.3. 檔案檔案
14.22.4. Gettext
14.22.5. 資料結構
14.23. RSS / ATom
14.23.1. Atom
14.24. Logging 日誌
14.24.1. 日誌的格式
14.24.2. 日誌存貯
14.24.3. Log4cpp/Log4j/Log2PHP
14.24.4. Remote Syslog
14.25. Search
14.25.1. 搜索結果靜態化
14.25.2. SEO Module
14.26. debug
14.27. 性能優化
14.27.1. 儘量使用單引號
15. 信息安全
15.1. CSRF(Cross-site request forgery)跨站請求偽造
15.2. Session 撰改演示
15.3. 用戶註冊與登錄安全
15.4. 目錄檔案與權限
15.4.1. 讀寫權限
15.4.2. 訪問權限
15.5. 密碼安全
15.6. 注入檢查
15.7. 防止惡意刷新與重複提交
15.8. 屏蔽出錯信息
15.8.1. 屏蔽php出錯信息
16. 序列化
IV. Testing
17. Automatic Testing
17.1. Cluster Testing
17.2. 靜態內容並發測試
17.3. 動態內容測試
17.4. 業務邏輯並發能力
V. 硬件篇
18. 網綫怎樣連接才合理
18.1. 單個硬件防火牆方案
18.1.1. Switch
18.1.2. Firewall
18.2. 雙防火牆方案
19. Network Traffic
19.1. bandwidth
19.1.1. firewall
19.1.2. switch
19.1.3. Server
19.2. Session
19.2.1. firewall
19.2.2. Server
19.2.3. application
19.3. IO
19.3.1. 分佈IO
19.3.2. FC SAN
19.3.3. iSCSI / FCoE
19.3.4. InfiniBand 或 RDMA
20. Distributed File System(簇檔案系統)
20.1. 聚合檔案系統
20.2. 全局檔案系統
20.3. 負載均衡檔案系統
20.4. 網絡塊設備
21. Server
21.1. TPC
21.2. IOPS (Input/Output Operations Per Second, pronounced i-ops)
21.3. rPerf
21.4. 磁碟規劃
21.4.1. 物理隔離
21.4.2. 硬件邏輯卷隔離
21.5. 網卡
21.5.1. 網口規劃
21.5.2. 常見網絡適配器品牌
21.5.3. 1G 千兆乙太網產品
21.5.4. 10G 萬兆乙太網產品
21.6. Fibre Channel HBA 卡
21.7. iDRAC / iLO / IMM
VI. 設計與解決方案
22. Monitor solution
22.1. 網絡監控
22.1.1. 流量監控
22.1.2. 交換機監控
22.2. 集群監控
22.3. 伺服器狀態監控
22.3.1. 負載監控
22.3.2. 磁碟空間監控
22.3.3. 內存監控
22.3.4. CPU監控
22.4. MySQL 監控
22.5. 網站安全與預警機制
23. Backup
23.1. help
23.1.1. Task
23.1.2. Schedule
23.1.3. Crontab
23.2. 配置檔案備份
23.2.1. Firewall and Switch
23.2.2. Server
24. 支付平台方案
24.1. 方案
24.1.1. 商戶方案
24.1.2. 銀行方案
24.2. 支付介面
24.3. 支付派台後台
25. 電子商務網站
25.1. Product
25.2. Cart & Checkout
25.2.1. 物流配送插件設計
25.3. 促銷優惠組件設計
26. 微信公眾平台
26.1. 微信公眾平台原理
26.2. 微信公眾平台通常提供的服務模式
26.3. 微信公眾平台開發
27. DIY Firewall & VPN
27.1. Firewall
27.2. 3 Layer VPN
27.3. 7 Layer VPN
28. 日誌
29. Web Service Security
29.1. 權限控制與實現
29.2. 演示
29.3. 增加7 Layer防火牆
1. 附錄
術語表

表格清單

7.1. 工作流模擬

範例清單

4.1. identity_card 身份證歸屬地表
4.2. 遞歸查詢實例 city 表
4.3. 話題討論表的設計
8.1. 發送短信
8.2. 處理圖片
8.3. 身份證號碼校驗
8.4. 靜態化案例
8.5. 數據同步案例
14.1. php language package
14.2. sql table language package
14.3. example robots.txt
15.1. Example for ECSHOP
23.1. Backup program
修訂歷史
修訂 0.1.1Sep 12, 2011Neo
章節做了大調整,將文檔分為五塊,多維度架構,開發,運維,SQA,還有DevOps。
修訂 0.1.0May 15, 2010Neo
增加解決方案一節,並填充了大量章節。同時對完成這篇文檔信心大增
修訂 0.0.42010Neo
這篇文檔几乎沒有時間和精力編輯,內容增加不多。
修訂 0.0.4April 15, 2009Neo
這篇文檔几乎擱淺,沒有時間和精力,沒有編輯加入。今天做了一下佈局調整,增加一些內容。
修訂 0.0.3Sep. 17, 2008Neo
加入關於存儲的內容
修訂 0.0.1May 24, 2008Neo
李振韜加入編譯團隊
修訂 0.0.0May 22, 2008Neo
這是一個值得紀念的日子