第1章 天降奇兵 1
1.1 住在彆人的地下城堡 3
1.2 救世主AMQP 5
1.3 RabbitMQ簡史 5
1.4 百裏挑一 8
1.5 在UNIX係統上安裝RabbitMQ 8
1.5.1 為什麼環境很重要--生活在Erlang 的世界裏 9
1.5.2 獲取安裝包 9
1.5.3 設置文件夾結構 9
1.5.4 首次運行Rabbit 10
1.6 總結 12
第2章 理解消息通信13
2.1 消費者和生産者(這可不是經濟學課程哦) 14
2.2 從底部開始構造:隊列 17
2.3 聯閤起來:交換器和綁定 22
2.4 多租戶模式:虛擬主機和隔離 27
2.5 我的消息去哪兒瞭呢?持久化和你的策略 28
2.6 把所有內容結閤起來:一條消息的一生 32
2.7 使用發送方確認模式來確認投遞 37
2.8 總結 40
第3章 運行和管理Rabbit 42
3.1 服務器管理 43
3.1.1 啓動節點 43
3.1.2 停止節點 45
3.1.3 關閉和重啓應用程序:有何差彆 46
3.1.4 Rabbit 配置文件 46
3.2 請求許可 48
3.2.1 管理用戶 49
3.2.2 Rabbit 的權限係統 50
3.3 檢查 54
3.3.1 查看數據統計 54
3.3.2 理解RabbitMQ 日誌 59
3.4 修復Rabbit:疑難解答 63
由badrpc、nodedown 和其他Erlang 引起的問題 63
3.5 總結 68
第4章 解決Rabbit相關問題:編碼與模式69
4.1 解耦風雨路:誰將我們推嚮消息通信 70
4.1.1 異步狀態思維(分離請求和動作) 70
4.1.2 提供擴展性:沒有負載均衡器的世界 73
4.1.3 零成本API :語言不應成為枷鎖 73
4.2 發後即忘模型 74
4.2.1 發送告警 75
4.2.2 並行處理 84
4.3 彆忘瞭:用RabbitMQ實現RPC並等待響應 92
4.3.1 私有隊列和發送確認 93
4.3.2 使用reply_to 來實現簡單的JSON RPC 93
4.4 總結 98
第5章 集群並處理失敗99
5.1 開足馬力:RabbitMQ集群 100
5.2 集群架構 101
5.2.1 集群中的隊列 101
5.2.2 分布交換器 103
5.2.3 是內存節點還是磁盤節點 104
5.3 在你的筆記本電腦上設置集群 106
5.4 將節點分布到更多的機器上 110
5.5 升級集群節點 114
5.6 鏡像隊列和保留消息 115
5.6.1 聲明並使用鏡像隊列 115
5.6.2 鏡像隊列工作原理 118
5.7 總結 120
第6章 從故障中恢復121
6.1 為Rabbit做負載均衡 122
6.1.1 安裝HAProxy 124
6.1.2 配置HAProxy 125
6.2 連接丟失和故障轉移 127
6.3 總結 134
第7章 warren和Shovel:故障轉移和復製 135
7.1 warren:另一種集群方式 136
7.2 設定負載均衡器--基於主/從的集群 138
7.3 遠距離通信和復製 142
7.3.1 給Rabbit 裝備Shovel :Shovel 插件介紹 142
7.3.2 安裝Shovel 145
7.3.3 配置並運行Shovel 146
7.4 總結 152
第8章 從Web端管理RabbitMQ 154
8.1 超越rabbitmqctl:RabbitMQ Management插件 155
8.1.1 為何需要Management 插件 155
8.1.2 Management 插件功能 155
8.1.3 啓用Management 插件 156
8.2 從Web控製颱來管理RabbitMQ 158
8.2.1 監控Erlang VM 158
8.2.2 從JSON 文件導入配置 159
8.3 從Web控製颱管理用戶 160
8.3.1 創建用戶 161
8.3.2 管理用戶的權限 162
8.4 從Web控製颱管理交換器和隊列 163
8.4.1 列齣隊列信息 165
8.4.2 創建隊列 166
8.5 迴到命令行 168
8.5.1 為什麼需要另一個CLI 168
8.5.2 CLI 管理:一種更簡單的方式 170
8.5.3 安裝rabbitmqadmin 腳本 170
8.5.4 清空隊列、創建交換器等 171
8.6 總結 172
第9章 使用REST API控製Rabbit 173
9.1 能用RabbitMQ REST API做什麼 175
9.2 對客戶端授權訪問 177
9.3 訪問數據統計 178
9.4 自動化vhost和用戶配置 181
9.5 總結 .186
第10章 監控187
10.1 監控RabbitMQ:密切關注你的warren 188
10.1.1 為Nagios 編寫健康檢測 188
10.1.2 使用AMQP 模擬檢測來確認RabbitMQ 是否運行 190
10.1.3 使用REST API 來檢測 193
10.1.4 監控配置文件修改 196
10.1.5 監控集群狀態 201
10.2 確保消費者正常工作 206
10.2.1 通過AMQP 監控隊列等級 208
10.2.2 使用REST API 來監控隊列級彆 212
10.2.3 建立隊列的消息計數基準經驗法則 215
10.3 總結216
第11章 提升性能,保障安全217
11.1 對速度的需求 218
11.1.1 消息持久化 218
11.1.2 消息確認 219
11.1.3 路由算法和綁定規則 219
11.1.4 投遞消息 221
11.2 內存使用率和進程限製 223
11.2.1 內存使用率 223
11.2.2 Erlang 進程計數 226
11.3 SSL連接 ..227
11.3.1 SSL 證書.228
11.3.2 設置證書頒發機構 ..229
11.3.3 生成根證書 233
11.3.4 生成服務器端證書 234
11.3.5 生成客戶端證書 235
11.3.6 啓用RabbitMQ 的SSL 監聽器 236
11.3.7 測試你的RabbitMQ SSL 設置 237
11.4 總結 239
第12章 聰明的Rabbit:擴展RabbitMQ241
12.1 RabbitMQ插件 242
12.1.1 你可以用插件做什麼 242
12.1.2 在哪裏可以找到插件 244
12.1.3 安裝插件 244
12.1.4 移除插件 245
12.2 製作你自己的插件 247
12.2.1 獲取RabbitMQ Public Umbrella 248
12.2.2 設置文件夾結構 249
12.2.3 包含插件構建係統 250
12.2.4 創建Erlang 應用文件 250
12.3 創建自定義交換器模塊 252
12.3.1 將交換器注冊到RabbitMQ 254
12.3.2 實現交換器behaviour 257
12.3.3 編譯自定義交換器 264
12.3.4 測試你的插件 267
12.4 總結 271
附錄A 在Java和.NET上使用Rabbit 273
附錄B 在綫資源302
附錄C 在Windows上安裝RabbitMQ 307
· · · · · · (
收起)