RabbitMQ 實戰指南 RabbitMQ实战指南

朱忠華

  • 出版商: 電子工業
  • 出版日期: 2017-11-01
  • 售價: $474
  • 貴賓價: 9.5$450
  • 語言: 簡體中文
  • 頁數: 335
  • 裝訂: 平裝
  • ISBN: 7121329913
  • ISBN-13: 9787121329913
  • 相關分類: Message Queue
  • 立即出貨(限量) (庫存=3)

買這商品的人也買了...

商品描述

本書從消息中間件的概念和RabbitMQ的歷史切入,主要闡述RabbitMQ的安裝、使用、配置、管理、運維、原理、擴展等方面的細節。本書大致可以分為基礎篇、進階篇和高階篇三個部分。

基礎篇首先介紹RabbitMQ的基本安裝及使用方式,方便零基礎的讀者以最舒適的方式融入到RabbitMQ之中。其次介紹RabbitMQ的基本概念,包括生產者、消費者、交換器、隊列、綁定等。之後通過Java語言講述了客戶端如何與RabbitMQ建立(關閉)連接、聲明(刪除)交換器、隊列、綁定關系,以及如何發送和消費消息等。

進階篇講述RabbitMQ的 TTL、死信、延遲隊列、優先級隊列、RPC、消息持久化、生產端和消費端的消息確認機制等內容,以期讀者能夠掌握RabbitMQ的使用精髓。本書中間篇幅主要從RabbitMQ 的管理、配置、運維這三個角度來為讀者提供幫助文檔及解決問題的思路。

高階篇主要闡述RabbitMQ的存儲機制、流控及鏡像隊列的原理,深入地講述RabbitMQ的一些實現細節,便於讀者加深對RabbitMQ的理解。本書還涉及網絡分區的概念,此內容可稱為魔鬼篇,需要掌握前面的所有內容才可理解其中的門道。本書最後講述的是RabbitMQ的一些擴展內容及附錄,供讀者參考之用。

目錄大綱

第1章RabbitMQ簡介1 
1.1什麼是消息中間件2 
1.2消息中間件的作用3 
1.3 RabbitMQ的起源4 
1.4 RabbitMQ的安裝及簡單使用6 
1.4.1安裝Erlang 7 
1.4.2 RabbitMQ的安裝8 
1.4.3 RabbitMQ的運行8 
1.4.4生產和消費消息10 
1.5小結14 

第2章RabbitMQ入門15 
2.1相關概念介紹16 
2.1.1生產者和消費者16 
2.1.2隊列18 
2.1.3交換器、路由鍵、綁定19 
2.1.4交換器類型21 
2.1.5 RabbitMQ運轉流程23 
2.2 AMQP協議介紹26 
2.2.1 AMQP生產者流轉過程27 
2.2.2 AMQP消費者流轉過程29 
2.2.3 AMQP命令概覽30 
2.3小結32 

第3章客戶端開發嚮導33 
3.1連接RabbitMQ 34 
3.2使用交換器和隊列36 
3.2.1 exchangeDeclare方法詳解37 
3.2.2 queueDeclare方法詳解39
3.2.3 queueBind方法詳解41 
3.2.4 exchangeBind方法詳解42 
3.2.5何時創建43 
3.3發送消息44 
3.4消費消息46 
3.4.1推模式46 
3.4.2拉模式49 
3.5消費端的確認與拒絕50 
3.6關閉連接52 
3.7小結54 

第4章RabbitMQ進階55 
4.1消息何去何從56 
4.1.1 mandatory參數56 
4.1.2 immediate參數57 
4.1.3備份交換器58 
4.2過期時間(TTL) 60 
4.2.1設置消息的TTL 60 
4.2.2設置隊列的TTL 62 
4.3死信隊列63 
4.4延遲隊列65 
4.5優先級隊列67 
4.6 RPC實現68 
4.7持久化72 
4.8生產者確認74 
4.8.1事務機制74 
4.8.2發送方確認機制77 
4.9消費端要點介紹84 
4.9.1消息分發85 
4.9.2消息順序性87 
4.9.3棄用QueueingConsumer 88 
4.10消息傳輸保障90
4.11小結91 

第5章RabbitMQ管理92 
5.1多租戶與權限93 
5.2用戶管理97 
5.3 Web端管理99 
5.4應用與集群管理105 
5.4.1應用管理105 
5.4.2集群管理108 
5.5服務端狀態111 
5.6 HTTP API接口管理121 
5.7小結130 

第6章RabbitMQ配置131 
6.1環境變量132 
6.2配置文件136 
6.2.1配置項137 
6.2.2配置加密140 
6.2.3優化網絡配置142 
6.3參數及策略146 
6.4小結151 

第7章RabbitMQ運維152 
7.1集群搭建153 
7.1.1多機多節點配置154 
7.1.2集群節點類型158 
7.1.3剔除單個節點160 
7.1.4集群節點的升級162 
7.1.5單機多節點配置163 
7.2查看服務日誌164 
7.3單節點故障恢復172 
7.4集群遷移173 
7.4.1元數據重建174 
7.4.2數據遷移和客戶端連接的切換183
7.4.3自動化遷移185 
7.5集群監控189 
7.5.1通過HTTP API接口提供監控數據189 
7.5.2通過客戶端提供監控數據196 
7.5.3檢測RabbitMQ服務是否健康199 
7.5.4元數據管理與監控203 
7.6小結205 

第8章跨越集群的界限206 
8.1 Federation 207 
8.1.1聯邦交換器207 
8.1.2聯邦隊列214 
8.1.3 Federation的使用216 
8.2 Shovel 223 
8.2.1 Shovel的原理224 
8.2.2 Shovel的使用227 
8.2.3案例:消息堆積的治理233 
8.3小結235 

第9章RabbitMQ高階237 
9.1存儲機制238 
9.1.1隊列的結構240 
9.1.2惰性隊列243 
9.2內存及磁盤告警245 
9.2.1內存告警246 
9.2 .2磁盤告警249 
9.3流控250 
9.3.1流控的原理250 
9.3.2案例:打破隊列的瓶頸253 
9.4鏡像隊列263 
9.5小結269

第10章網絡分區270 
10.1網絡分區的意義271 
10.2網絡分區的判定272 
10.3網絡分區的模擬275 
10.4網絡分區的影響279 
10.4.1未配置鏡像279 
10.4.2已配置鏡像282 
10.5手動處理網絡分區284 
10.6自動處理網絡分區289 
10.6.1 pause-minority模式289 
10.6.2 pause-if-all-down模式290 
10.6.3 autoheal模式291 
10.6.4挑選哪種模式292 
10.7案例:多分區情形293 
10.8小結296
 
第11章RabbitMQ擴展297 
11.1消息追踪298 
11.1.1 Firehose 298 
11.1.2 rabbitmq_tracing插件301 
11.1.3案例:可靠性檢測305 
11.2負載均衡310 
11.2.1客戶端內部實現負載均衡312 
11.2.2使用HAProxy實現負載均衡314 
11.2.3使用Keepalived實現高可靠負載均衡318 
11.2.4使用Keepalived+LVS實現負載均衡325 
11.3小結330
附錄A集群元數據信息示例331 
附錄B /api/nodes接口詳細內容333 
附錄C網絡分區圖譜336