-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應用
-
>
決戰行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調優實踐之路
-
>
第一行代碼Android
-
>
JAVA持續交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學習
深入RABBITMQ 版權信息
- ISBN:9787121341809
- 條形碼:9787121341809 ; 978-7-121-34180-9
- 裝幀:一般膠版紙
- 冊數:暫無
- 重量:暫無
- 所屬分類:>
深入RABBITMQ 本書特色
本書對 RabbitMQ 這一業界主流的消息中間件做了全面介紹,給出了如何使用 RabbitMQ 構建消息通信系統的方法和實踐。本書從 AMQP 協議出發,深入介紹各種消息屬性,給出 RabbitMQ 在發送和消費消息上的特性和*實踐,并闡述基于 RabbitMQ 所特有的交換器組件實現靈活的消息路由機制。同時,本書也討論了如何利用 RabbitMQ 強大的集群機制實現分布式環境下的消息通信,并展示了如何在 RabbitMQ中,使用其他傳輸協議以及數據庫集成等功能來實現各種定制化需求。本書的讀者對象為從事互聯網行業中各種分布式和服務化系統開發的研究人員、高等院校計算機相關專業的研究生和本科生,以及廣大的 IT 愛好者。
深入RABBITMQ 內容簡介
本書對 RabbitMQ 這一業界主流的消息中間件做了全面介紹,給出了如何使用 RabbitMQ 構建消息通信系統的方法和實踐。本書從 AMQP 協議出發,深入介紹各種消息屬性,給出 RabbitMQ 在發送和消費消息上的特性和很好實踐,并闡述基于 RabbitMQ 所特有的交換器組件實現靈活的消息路由機制。同時,本書也討論了如何利用 RabbitMQ 強大的集群機制實現分布式環境下的消息通信,并展示了如何在 RabbitMQ中,使用其他傳輸協議以及數據庫集成等功能來實現各種定制化需求。本書的讀者對象為從事互聯網行業中各種分布式和服務化系統開發的研究人員、高等院校計算機相關專業的研究生和本科生,以及廣大的 IT 愛好者。
深入RABBITMQ 目錄
**篇 RabbitMQ和應用程序體系結構
第1章 RabbitMQ基礎 ...........................................................................3
1.1 RabbitMQ特性以及好處 ........................................................................................ 4
1.1.1 RabbitMQ與Erlang ....................................................................... 5
1.1.2 RabbitMQ與AMQP ............................................................................... 6
1.2 誰在使用RabbitMQ,在怎么用 ....................................................................... 7
1.3 松耦合架構的優勢 ................................................................................................. 8
1.3.1 解耦你的應用 ........................................................ 10
1.3.2 解耦數據庫寫入 ........................................................................11
1.3.3 無縫添加新功能 ............................................................................... 12
1.3.4 復制數據與事件 ....................................................................... 12
1.3.5 多主(Multi-Master)互聯化數據與事件 ......................................... 13
1.3.6 高級消息隊列模型 ............................................................................ 14
1.4 小結 ................................................................................................. 16
第2章 使用AMQ協議與Rabbit進行交互 .................................................18
2.1 AMQP作為一種RPC傳輸機制 ...................................................................... 19
2.1.1 啟動會話 .............................................................................................. 20
2.1.2 調整正確的信道 ............................................................................ 20
2.2 AMQP RPC幀結構 ...................................................................... 21
2.2.1 AMQP幀組件 ............................................................................. 21
2.2.2 幀類型 .................................................................................. 22
2.2.3 將消息編組成幀 .................................................................... 23
2.2.4 方法幀結構 ..................................................................................... 24
2.2.5 內容頭幀 ........................................................................................... 26
2.2.6 消息體幀 ...................................................................................... 26
2.3 使用協議 ............................................................................................... 27
2.3.1 聲明交換器 ............................................................................................. 27
2.3.2 聲明隊列 .................................................................................... 28
2.3.3 綁定隊列到交換器 ............................................................................................... 29
2.3.4 發布消息到RabbitMQ .......................................................................................... 29
2.3.5 從RabbitMQ中消費消息 ...................................................................................... 30
2.4 用Python編寫消息發布者 ........................................................................... 32
2.5 從RabbitMQ中獲取消息 .............................................................................. 36
2.6 小結 ........................................................................................................ 37
第3章 消息屬性詳解 ...........................................................................38
3.1 合理使用屬性 ................................................................................................ 39
3.2 使用content-type屬性創建顯式的消息契約 .......................................................... 41
3.3 通過gzip和content-encoding屬性壓縮消息大小 .................................................. 43
3.4 使用message-id和correlation-id引用消息 ..................................................... 45
3.4.1 Message-id........................................................................................................ 45
3.4.2 Correlation-id............................................................................................... 45
3.5 創建時間:timestamp屬性 .................................................................................. 46
3.6 消息自動過期 ..................................................................................... 47
3.7 使用delivery-mode平衡速度和安全性 .................................................................... 48
3.8 使用app-id和user-id驗證消息來源 ........................................................................ 49
3.8.1 app-id.................................................................................................................. 50
3.8.2 user-id................................................................................................................ 51
3.9 使用type屬性獲取明細 ............................................................................. 51
3.10 使用reply-to屬性實現動態工作流 ........................................................ 52
3.11 使用消息頭自定義屬性 .......................................................................... 53
3.12 優先級屬性 ........................................................................................ 54
3.13 不能使用的屬性:cluster-id/reserved ............................................................ 54
3.14 小結 ....................................................................... 55
第4章 消息發布的性能權衡 ..........................................................58
4.1 平衡投遞速度與可靠投遞 .......................................................................... 59
4.1.1 如果沒有保證機制我們能期待什么 ................................................................... 60
4.1.2 使用mandatory設置,RabbitMQ將不接受不可路由消息 ............................... 62
4.1.3 發布者確認作為事務的輕量級替代方法 ........................................................... 64
4.1.4 使用備用交換器處理無法路由的消息 ............................................................... 66
4.1.5 基于事務的批量處理 ........................................................................................... 68
4.1.6 使用HA隊列避免節點故障 .................................................................................. 70
4.1.7 HA隊列與事務 ........................................................................... 72
4.1.8 通過設置delivery-mode為2將消息持久化到磁盤 ...................................... 72
4.2 RabbitMQ回推 ......................................................................................... 75
4.2.1 使用rabbitpy來檢測連接狀態 .............................................................................. 77
4.2.2 使用管理API管理連接狀態 ................................................................................. 77
4.3 小結 ............................................................................................................ 78
第5章 消費消息,避免拉取 ..............................................................79
5.1 對比Basic.Get 和Basic.Consume ........................................................................ 80
5.1.1 Basic.Get .......................................................................................................... 80
5.1.2 Basic.Consume ................................................................................................ 82
5.2 優化消費者性能 ............................................................................................ 84
5.2.1 使用no-ack模式實現更快的吞吐量 ................................................................. 85
5.2.2 通過服務質量設置控制消費者預取 ................................................................... 86 5.2.3 消費者使用事務 ............................................................................. 89 5.3 拒絕消息 ...................................................................................................... 90 5.3.1 Basic.Reject.................................................................................................... 90 5.3.2 Basic.Nack........................................................................................................ 91 5.3.3 死信交換器 ............................................................................ 92 5.4 控制隊列 ................................................................................................. 94 5.4.1 臨時隊列 ........................................................................................... 94 5.4.2 永久隊列 ............................................................................................. 97 5.4.3 任意隊列設置 ........................................................................... 99 5.5 小結 ................................................................................................... 99 第6章 消息路由模式 .....................................................................101 6.1 通過direct交換器路由消息 ............................................................................. 102 6.1.1 創建應用架構 ................................................................ 103 6.1.2 創建RPC工作者 ........................................................................... 107 6.1.3 編寫簡單的RPC發布者 ......................................................................................110 6.2 通過fanout交換器廣播消息 ......................................................................115 6.2.1 修改面部檢測消費者 ..........................................................................................116 6.2.2 創建一個簡單的圖片哈希消費者 ......................................................................117 6.3 使用topic交換器有選擇地路由消息 ...............................................................119 6.4 使用headers交換器有選擇地路由消息......................................................... 122 6.5 交換器性能基準 .................................................................. 124 6.6 交換器間路由 ......................................................................................... 125 6.7 使用一致性哈希交換器路由消息 ........................................................... 127 6.8 小結 ......................................................................................................... 131 第二篇 管理數據中心或云中的RabbitMQ 第7章 RabbitMQ集群 ................................................................135 7.1 集群簡介 ..................................................................................................... 136 7.1.1 集群和管理界面 ........................................................................... 137 7.1.2 集群節點類型 ....................................................................................... 138 7.1.3 集群和隊列行為 ................................................................................. 139 7.2 集群設置 ......................................................................................... 142 7.2.1 虛擬機設置 ............................................................................ 143 7.2.2 向集群中添加節點 ................................................................ 144 7.3 小結 ......................................................................................................... 147 第8章 跨集群的消息分發 ...........................................................148 8.1 聯合交換器和聯合隊列 ........................................................................ 149 8.1.1 聯合交換器 ............................................................................. 149 8.1.2 聯合隊列 ................................................................................................ 152 8.2 創建RabbitMQ虛擬機 ................................................................................ 153 8.2.1 創建首個實例 ................................................................................... 153 8.2.2 復制EC2實例 ........................................................................................ 159 8.3 連接上游節點 ...................................................................................................... 162 8.3.1 定義聯合中的上游節點 ..................................................................................... 162 8.3.2 定義策略 ................................................................................. 164 8.3.3 利用上游集合 .................................................................................... 167 8.3.4 雙向聯合交換器 .............................................................................. 170 8.3.5 使用聯合來升級集群 ..................................................................... 171 8.4 小結 ...................................................................................................... 173 第三篇 集成與定制第9章 使用替代協議 ............................................................177 9.1 MQTT和RabbitMQ .................................................................................. 178 9.1.1 MQTT協議 .................................................................................... 178 9.1.2 通過MQTT發送消息 .......................................................................................... 182 9.1.3 MQTT訂閱者 .............................................................................. 184 9.1.4 MQTT插件配置 .......................................................................... 187 9.2 STOMP和RabbitMQ ............................................................................. 189 9.2.1 STOMP協議 ............................................................................... 190 9.2.2 發布消息 ................................................................................. 191 9.2.3 消費消息 .......................................................................................... 195 9.2.4 配置STOMP插件 ............................................................................... 198 9.2.5 在Web瀏覽器中使用STOMP ............................................................................. 199 9.3 通過HTTP進行無狀態發布 ................................................................ 200 9.3.1 statelessd的由來 ................................................................... 200 9.3.2 使用statelessd ............................................................................. 201 9.3.3 運營架構 ................................................................................ 202 9.3.4 通過statelessd來發布消息 ............................................................. 203 9.4 小結 ............................................................................................................... 203 第10章 數據庫集成 ..........................................................................205 10.1 PostgreSQL擴展:pg_amqp ................................................................. 206 10.1.1 安裝pg_amqp擴展................................................................................... 207 10.1.2 配置pg_amqp擴展................................................................................... 209 10.1.3 通過pg_amqp發送消息..................................................................................... 210 10.2 監聽PostgreSQL通知.......................................................................................... 212 10.2.1 安裝PostgreSQL LISTEN交換器 .............................................................. 213 10.2.2 基于策略的配置 .......................................................................... 215 10.2.3 創建交換器 .................................................................................. 217 10.2.4 創建并綁定測試隊列 ....................................................................................... 217 10.2.5 通過NOTIFY發送消息 ..................................................................................... 218 10.3 將消息存入InfluxDB中 ................................................................................ 219 10.3.1 InfluxDB的安裝與設置 .................................................................................... 220 10.3.2 安裝InfluxDB存儲交換器 ................................................................................ 222 10.3.3 創建測試交換器 ......................................................................... 223 10.3.4 測試交換器 .......................................................................................... 224 10.4 小結 ......................................................................................................... 227 附錄 準備就緒 .......................................................................228 A.1 安裝VirtualBox .............................................................................................................. 228 A.2 安裝Vagrant .................................................................................................... 230 A.3 設置Vagrant虛擬機 ............................................................................ 233 A.4 確認安裝 .................................................................................................... 234 A.5 小結 .......................................................................................................... 236
深入RABBITMQ 作者簡介
Gavin M. Ray是一位積極主動的開源傳播者和倡導者,自20世紀90年代中期以來一直從事互聯網和企業技術方面的工作。技術編輯james Titcumb是一個自由開發者、培訓師、演講者,并且是開源項目積極貢獻者。
汪佳南,擁有10年以上軟件開發經驗。對編程情有獨鐘,對產品設計很感興趣,始終堅信技術可以改變世界。譯有《RabbitMQ實戰 高效部署分布式消息隊列 》《深入理解 Redis》等知名圖書。
- >
企鵝口袋書系列·偉大的思想20:論自然選擇(英漢雙語)
- >
朝聞道
- >
我從未如此眷戀人間
- >
上帝之肋:男人的真實旅程
- >
月亮與六便士
- >
詩經-先民的歌唱
- >
姑媽的寶刀
- >
中國歷史的瞬間