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

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

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

定 價(jià):¥59.00

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

購(gòu)買這本書(shū)可以去


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

內(nèi)容簡(jiǎn)介

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

作者簡(jiǎn)介

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

圖書(shū)目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) www.talentonion.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)