●章 RabbitMQ簡介11.1 什麼是消息中間件21.2 消息中間件的作用31.3 RabbitMQ的起源41.4 RabbitMQ的安裝及簡單使用61.4.1 安裝Erlang71.4.2 RabbitMQ的安裝81.4.3 RabbitMQ的運行81.4.4 生產和消費消息101.5 小結14第2章 RabbitMQ入門152.1 相關概念介紹162.1.1 生產者和消費者162.1.2 隊列182.1.3 交換器、路由鍵、綁定192.1.4 交換器類型212.1.5 RabbitMQ運轉流程232.2 AMQP協議介紹262.2.1 AMQP生產者流轉過程272.2.2 AMQP消費者流轉過程292.2.3 AMQP命令概覽302.3 小結32第3章 客戶端開發向導333.1 連接RabbitMQ343.2 使用交換器和隊列363.2.1 exchangeDeclare方法詳解373.2.2 queueDeclare方法詳解393.2.3 queueBind方法詳解413.2.4 exchangeBind方法詳解423.2.5 何時創建433.3 發送消息443.4 消費消息463.4.1 推模式463.4.2 拉模式493.5 消費端的確認與拒絕503.6 關閉連接523.7 小結54第4章 RabbitMQ進階554.1 消息何去何從564.1.1 mandatory參數564.1.2 immediate參數574.1.3 備份交換器584.2 過期時間(TTL)604.2.1 設置消息的TTL604.2.2 設置隊列的TTL624.3 死信隊列634.4 延遲隊列654.5 優先級隊列674.6 RPC實現684.7 持久化724.8 生產者確認744.8.1 事務機制744.8.2 發送方確認機制774.9 消費端要點介紹844.9.1 消息分發854.9.2 消息順序性874.9.3 棄用QueueingConsumer884.10 消息傳輸保障904.11 小結91第5章 RabbitMQ管理925.1 多租戶與權限935.2 用戶管理975.3 Web端管理995.4 應用與集群管理1055.4.1 應用管理1055.4.2 集群管理1085.5 服務端狀態1115.6 HTTP API接口管理1215.7 小結130第6章 RabbitMQ配置1316.1 環境變量1326.2 配置文件1366.2.1 配置項1376.2.2 配置加密1406.2.3 優化網絡配置1426.3 參數及策略1466.4 小結151第7章 RabbitMQ運維1527.1 集群搭建1537.1.1 多機多節點配置1547.1.2 集群節點類型1587.1.3 剔除單個節點1607.1.4 集群節點的升級1627.1.5 單機多節點配置1637.2 查看服務日志1647.3 單節點故障恢復1727.4 集群遷移1737.4.數據重建1747.4.2 數據遷移和客戶端連接的切換1837.4.3 自動化遷移1857.5 集群監控1897.5.1 通過HTTP API接口提供監控數據1897.5.2 通過客戶端提供監控數據1967.5.3 檢測RabbitMQ服務是否健康1997.5.數據管理與監控2037.6 小結205第8章 跨越集群的界限2068.1 Federation2078.1.1 聯邦交換器2078.1.2 聯邦隊列2148.1.3 Federation的使用2168.2 Shovel2238.2.1 Shovel的原理2248.2.2 Shovel的使用2278.2.3 案例:消息堆積的治理2338.3 小結235第9章 RabbitMQ高階2379.1 存儲機制2389.1.1 隊列的結構2409.1.2 惰性隊列2439.2 內存及磁盤告警2459.2.1 內存告警2469.2.2 磁盤告警2499.3 流控2509.3.1 流控的原理2509.3.2 案例:打破隊列的瓶頸2539.4 鏡像隊列2639.5 小結2690章 網絡分區27010.1 網絡分區的意義27110.2 網絡分區的判定27210.3 網絡分區的模擬27510.4 網絡分區的影響27910.4.1 未配置鏡像27910.4.2 已配置鏡像28210.5 手動處理網絡分區28410.6 自動處理網絡分區28910.6.1 pause-minority模式28910.6.2 pause-if-all-down模式29010.6.3 autoheal模式29110.6.4 挑選哪種模式29210.7 案例:多分區情形29310.8 小結2961章 RabbitMQ擴展29711.1 消息追蹤29811.1.1 Firehose29811.1.2 rabbitmq_tracing插件30111.1.3 案例:可靠性檢測30511.2 負載均衡31011.2.1 客戶端內部實現負載均衡31211.2.2 使用HAProxy實現負載均衡31411.2.3 使用Keepalived實現高可靠負載均衡31811.2.4 使用Keepalived+LVS實現負載均衡32511.3 小結330附錄A 數據信息示例331附錄B /api/nodes接口詳細內容333附錄C 網絡分區圖譜336
本書從消息中間件的概念和RabbitMQ的歷史切入,主要闡述RabbitMQ的安裝、使用、配置、管理、運維、原理、擴展等方面的細節。本書大致可以分為基礎篇、進階篇和高階篇三個部分。基礎篇首先介紹RabbitMQ的基本安裝及使用方式,方便零基礎的讀者以很舒適的方式融入到RabbitMQ之中。其次介紹RabbitMQ的基本概念,包括生產者、消費者、交換器、隊列、綁定等。之後通過Java語言講述了客戶端如何與RabbitMQ建立(關閉)連接、聲明(刪除)交換器、隊列、綁定關繫,以及如何發送和消費消息等。進階篇講述RabbitMQ的 TTL、死信、延遲隊列、優先級隊列、RPC、消息持久化、生產端和消費端的消息確認機制等內容,以期讀者能夠掌握RabbitMQ的使用精髓。本書中間篇幅主要從RabbitMQ 的管理、配置、運維這三個角度來為讀者提供幫助文檔及解決問題的思路。高階篇主要等