注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計算機/網(wǎng)絡(luò)軟件與程序設(shè)計RocketMQ實戰(zhàn)與原理解析

RocketMQ實戰(zhàn)與原理解析

RocketMQ實戰(zhàn)與原理解析

定 價:¥59.00

作 者: 楊開元 著
出版社: 機械工業(yè)出版社
叢編項:
標(biāo) 簽: 暫缺

ISBN: 9787111600251 出版時間: 2018-06-01 包裝: 平裝
開本: 16開 頁數(shù): 168 字?jǐn)?shù):  

內(nèi)容簡介

  本書由云棲社區(qū)官方出品。 作者是阿里資深數(shù)據(jù)專家,對RocketMQ有深入的研究,并有大量的實踐經(jīng)驗。在寫這本書之前,作者不僅系統(tǒng)、深入地閱讀了RocketMQ的源代碼,而且還向RocketMQ的官方開發(fā)團隊深入了解了它的諸多設(shè)計細(xì)節(jié)。作者結(jié)合自己多年使用RocketMQ的經(jīng)驗,從開發(fā)和運維兩個維度,給出了大部分場景下的優(yōu)秀實踐,能幫助讀者在學(xué)會使用和用好RocketMQ的同時,盡量少“踩坑”。同時,本書也結(jié)合源碼分析了分布式消息隊列的原理,使讀者可以在復(fù)雜業(yè)務(wù)場景下定制有特殊功能的消息隊列。 全書共13章,在邏輯上分為兩大部分: 第一部分(第1~8章):RocketMQ實戰(zhàn) 第1~2章詳細(xì)講解了RocketMQ如何快速入門,以及在生產(chǎn)環(huán)境下的配置和使用; 第3~4章具體講解了不同類型生產(chǎn)者和消費者的特點,以及分布式消息隊列的協(xié)調(diào)者NameServer; 第5章從消息的存儲、發(fā)送、復(fù)制和高可用等多個維度講解了RocketMQ的內(nèi)部機制; 第6章討論了消息的可靠性,如何讓消息隊列在滿足業(yè)務(wù)邏輯需求的同時穩(wěn)定、可靠地長期運行; 第7章討論了在大流量場景下,吞吐量優(yōu)先時RocketMQ的使用方法; 第8章介紹RocketMQ與SpringBoot、Spark、Flink以及自定義的運維工具等其它系統(tǒng)的對接方法; 第二部分(第9~13章):RocketMQ原理 首先對RocketMQ的源碼結(jié)構(gòu)進行了整體介紹,然后深入地分析了NameServer、各種常用消費類、主從同步機制,以及基于Netty的通信的源碼實現(xiàn)。掌握這些源代碼以后,讀者可以快速定制屬于自己的具有特殊功能的消息中間件。

作者簡介

  楊開元 阿里巴巴數(shù)據(jù)專家,畢業(yè)于北京大學(xué),有10年IT行業(yè)研發(fā)經(jīng)驗。對RocketMQ有深入的研究,是RocketMQ源碼貢獻者。曾就職于甲骨文和獵豹移動,專注于大數(shù)據(jù)和實時計算。在大量的工作實踐中,對MySQL、J2EE、JVM、Spring、Hadoop、Kafka、Storm、Flink都有深入研究。喜歡剖析源碼,分析原理,為開源項目貢獻代碼。 云棲社區(qū) 云棲社區(qū)是面向開發(fā)者的開放型技術(shù)平臺,服務(wù)于云計算技術(shù)全生態(tài)。包含博客、問答、培訓(xùn)、設(shè)計研發(fā)、資源下載等產(chǎn)品,以分享專業(yè)、優(yōu)質(zhì)、高效的技術(shù)為己任,幫助技術(shù)人快速成長與發(fā)展。 歡迎關(guān)注云棲社區(qū)微信公眾號:yunqiinsight ,打開精彩代碼生活!

圖書目錄

推薦序
前言
第1章 快速入門1
1.1 消息隊列功能介紹1
1.1.1 應(yīng)用解耦1
1.1.2 流量消峰2
1.1.3 消息分發(fā)3
1.2 RocketMQ簡介4
1.3 快速上手RocketMQ4
1.3.1 RocketMQ的下載、安裝和配置 5
1.3.2 啟動消息隊列服務(wù)6
1.3.3 用命令行發(fā)送和接收消息6
1.3.4 關(guān)閉消息隊列6
1.4 本章小結(jié)7
第2章 生產(chǎn)環(huán)境下的配置和使用8
2.1 RocketMQ各部分角色介紹8
2.2 多機集群配置和部署9
2.2.1 啟動多個NameServer和Broker10
2.2.2 配置參數(shù)介紹11
2.3 發(fā)送/接收消息示例13
2.4 常用管理命令15
2.5 通過圖形界面管理集群21
2.6 本章小結(jié)22
第3章 用適合的方式發(fā)送和接收消息23
3.1 不同類型的消費者23
3.1.1 DefaultMQPushConsumer的使用23
3.1.2 DefaultMQPushConsumer的處理流程25
3.1.3 DefaultMQPushConsumer的流量控制28
3.1.4 DefaultMQPullConsumer30
3.1.5 Consumer的啟動、關(guān)閉流程32
3.2 不同類型的生產(chǎn)者33
3.2.1 DefaultMQProducer 34
3.2.2 發(fā)送延遲消息36
3.2.3 自定義消息發(fā)送規(guī)則36
3.2.4 對事務(wù)的支持37
3.3 如何存儲隊列位置信息38
3.4 自定義日志輸出42
3.5 本章小結(jié)44
第4章 分布式消息隊列的協(xié)調(diào)者45
4.1 NameServer的功能45
4.1.1 集群狀態(tài)的存儲結(jié)構(gòu)46
4.1.2 狀態(tài)維護邏輯47
4.2 各個角色間的交互流程48
4.2.1 交互流程源碼分析48
4.2.2 為何不用ZooKeeper50
4.3 底層通信機制50
4.3.1 Remoting模塊51
4.3.2 協(xié)議設(shè)計和編解碼54
4.3.3 Netty庫56
4.4 本章小結(jié)56
第5章 消息隊列的核心機制57
5.1 消息存儲和發(fā)送57
5.2 消息存儲結(jié)構(gòu)58
5.3 高可用性機制60
5.4 同步刷盤和異步刷盤61
5.5 同步復(fù)制和異步復(fù)制62
5.6 本章小結(jié)63
第6章 可靠性優(yōu)先的使用場景64
6.1 順序消息64
6.1.1 全局順序消息64
6.1.2 部分順序消息65
6.2 消息重復(fù)問題67
6.3 動態(tài)增減機器67
6.3.1 動態(tài)增減NameServer67
6.3.2 動態(tài)增減Broker69
6.4 各種故障對消息的影響70
6.5 消息優(yōu)先級72
6.6 本章小結(jié)73
第7章 吞吐量優(yōu)先的使用場景74
7.1 在Broker端進行消息過濾74
7.1.1 消息的Tag和Key74
7.1.2 通過Tag進行過濾75
7.1.3 用SQL表達(dá)式的方式進行過濾75
7.1.4 Filter Server方式過濾77
7.2 提高Consumer處理能力78
7.3 Consumer的負(fù)載均衡80
7.3.1 DefaultMQPushConsumer的負(fù)載均衡80
7.3.2 DefaultMQPullConsumer的負(fù)載均衡81
7.4 提高Producer的發(fā)送速度83
7.5 系統(tǒng)性能調(diào)優(yōu)的一般流程85
7.6 本章小結(jié)87
第8章 和其他系統(tǒng)交互88
8.1 在SpringBoot中使用RocketMQ88
8.1.1 直接使用88
8.1.2 通過Spring Messaging方式使用90
8.2 直接使用云上RocketMQ91
8.3 RocketMQ與Spark、Flink對接93
8.4 自定義開發(fā)運維工具93
8.4.1 開源版本運維工具功能介紹94
8.4.2 基于Tools模塊開發(fā)自定義運維工具95
8.5 本章小結(jié)96
第9章 首個Apache中間件頂級項目97
9.1 RocketMQ的前世今生97
9.2 Apache頂級項目(TLP)之路98
9.3 源碼結(jié)構(gòu)99
9.4 不斷迭代的代碼100
9.5 本章小結(jié)102
第10章 NameServer源碼解析103
10.1 模塊入口代碼的功能103
10.1.1 入口函數(shù)103
10.1.2 解析命令行參數(shù)104
10.1.3 初始化NameServer的Controller105
10.2 NameServer的總控邏輯106
10.3 核心業(yè)務(wù)邏輯處理107
10.4 集群狀態(tài)存儲109
10.5 本章小結(jié)111
第11章 最常用的消費類112
11.1 整體流程112
11.1.1 上層接口類112
11.1.2 DefaultMQPushConsumer的實現(xiàn)者114
11.1.3 獲取消息邏輯116
11.2 消息的并發(fā)處理118
11.2.1 并發(fā)處理過程118
11.2.2 ProcessQueue對象121
11.3 生產(chǎn)者消費者的底層類122
11.3.1 MQClientInstance類的創(chuàng)建規(guī)則122
11.3.2 MQClientInstance類的功能124
11.4 本章小結(jié)127
第12章 主從同步機制128
12.1 同步屬性信息128
12.2 同步消息體130
12.3 sync_master和async_master132
12.4 本章小結(jié)134
第13章 基于Netty的通信實現(xiàn)135
13.1 Netty介紹135
13.2 Netty架構(gòu)總覽136
13.2.1 重新實現(xiàn)ByteBuffer136
13.2.2 統(tǒng)一的異步 I/O接口137
13.2.3 基于攔截鏈模式的事件模型138
13.2.4 高級組件139
13.3 Netty用法示例140
13.3.1 Discard服務(wù)器140
13.3.2 查看收到的數(shù)據(jù)144
13.4 RocketMQ基于Netty的通信功能實現(xiàn)145
13.4.1 頂層抽象類145
13.4.2 自定義協(xié)議148
13.4.3 基于Netty的Server和Client151
13.5 本章小結(jié)152

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網(wǎng)安備 42010302001612號