所有連續的事件流都可以稱為數據流。對連續數據流設計和構建流式數據架構,能夠實現實時或近實時應用,提升整個組織的效率。本書以Apache Kafka 和MapRStreams為例,重點講解如何確定使用流數據的時機、如何為多用戶系統設計流式架構、為什么要求消息傳遞層具備某些特定功能,以及為什么需要微服務,并且描述了目前*符合流式設計需求的消息傳遞和流分析工具,適合架構師、大數據科學家及IT工程師閱讀。
對于數據驅動型公司,設計和構建流式數據架構能夠實現實時或近實時應用,提升整個組織的效率。《流式架構:Kafka與MapR Streams數據流處理》簡明的指南講述了流設計中的關鍵因素(聚焦于消息層的關鍵特性)、新的消息技術 ApacheKafka 和 MapR Streams、流架構是如何支持微服務的,以及當下可供選擇的流技術:Apache Spark Streaming、Apache Flink、Apache Storm和 Apache Apex,適合架構師、大數據科學家及 IT 工程師閱讀。
使用和處理連續數據流的能力,是一項極具競爭力的優勢。因此,能夠利用流數據,逐漸成為構建數據驅動型組織的一個重要條件。流數據的廣泛使用引發了如何進行更好的系統設計才能有效處理流數據的思考,涉及從多個數據源提取數據,以及各種不同的使用場景,包括流分析和持久化問題。流架構設計的最佳實踐層出不窮,甚至會讓我們目瞪口呆——流系統設計的范疇已經遠遠超出服務于特定的實時或近實時應用。使用新的方法進行流設計,能夠極大地提升整個組織的效率。
目標讀者
如果你已經在使用流數據,并且希望設計出一種能夠實現最佳性能的體系結構,或者正要探索流數據的價值,那么這本書應該對你很有幫助。本書提供了很多真實案例,幫助你理解如何將這些方法應用到不同場景。此外,本書還為開發人員提供了示例程序的鏈接。
本書適合非技術或技術出身的讀者,包括商業分析師、架構師、團隊領導、數據科學家及開發人員。
內容梗概
本書內容包括:
- - 如何確定使用流數據的時機
- - 在多用戶系統中如何更好地設計流架構
- - 為什么這種設計要求消息傳遞層具備某些特定的功能
- - 為什么流式架構支持微服務
- - 最符合流設計需求的消息傳遞和流分析工具的描述
第1~3 章闡述了流和微服務架構的基本知識。如果你已經對流數據的業務目標很熟悉,可以直接從第2 章開始讀,第2 章描述了我們推薦的適合流系統的架構。
我們不僅解釋了流架構最佳實踐所需的能力,還介紹了一些目前能夠滿足這些要求的技術。第4 章詳細講述Apache Kafka,并提供了示例代碼鏈接。第5 章介紹另一種更適合消息傳遞的技術,即MapR Streams,它使用Apache Kafka API,但提供的功能更多。
后面的章節深入介紹了利用流數據的真實案例,并對這一激動人心的領域做出了前景展望。
相關補充資料(示例代碼、練習等)在這里下載:https://www.mapr.com/blog/getting-started-sample-programs-apache-kafka-09 以及https://www.mapr.com/blog/getting-started-sample-programsmapr-streams。
本書的目的是幫助你完成工作。一般來說,如果書中有示例代碼,你可以在自己的程序和文檔中使用這些示例代碼。只要不是大批量復制這些代碼,都不必聯系我們請求許可。例如,借用書中若干塊代碼編寫程序,不需要許可;而將O’eilly 書中的例子制作成CD 售賣或發行,則需要許可。引用書中的示例代碼回答某個問題,不需要許可;而在產品文檔中大量使用示例代碼,則需要許可。
我們非常希望你能在引用本書內容時標明出處,但并不強求。出處一般包含有書名、作者、出版商和ISBN。例如:“Streaming Architecture: New Designs Using Apache Kafka and MapR Streams
by Ted Dunning and Ellen Friedman (O’eilly).Copyright 2016 Ted Dunning and Ellen Friedman, 978-1-491-95392-1”
如果你覺得示例代碼的使用可能超越了合理使用范圍,或者需要獲得許可,請隨時聯系我們:permissions@oreilly.com。
Safari Books Online Safari Books Online
Safari Books Online 是應需而變的數字圖書館。它同時以圖書和視頻的形式出版世界頂級技術和商務作家的專業作品
技術專家、軟件開發者、Web 設計師、商務人士和創意精英都可以將Safari 在線圖書作為他們的調研、解決問題、學習和認證的主要資料來源。
Safari Books Online 對于組織團體、政府機構和個人提供各種產品組合和靈活的定價策略。用戶可通過一個功能完備的數據庫檢索系統訪問O’Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sam、Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、McGarw-Hill、Jones & Bartlett、Course Technology 及其他數十家出版社的上千種圖書、培訓視頻和正式出版前的書稿。要了解更多關于Safari Books Online 的信息,請訪問我們的網站。
聯系方式
請將對本書的評價和發現的問題通過如下地址告知出版者。
美國:
O’eilly Media, Inc.
1005 Gravenstein Highway North
Sebastopol, CA 95472
中國:
北京市西城區西直門南大街2 號成銘大廈C 座807 室
(100035)
奧萊利技術咨詢(北京)有限公司
我們在http://bit.ly/streaming-architecture 上列出了勘誤表、示例和所有額外的信息。
要評論或者詢問關于本書的任何技術問題, 請發郵件到bookquestions@oreilly.com。
要了解O’eilly 更多的圖書、課程、會議和新聞,請訪問我們的網站http://www.oreilly.com。
我們的Facebook 賬號:http://facebook.com/oreilly
我們的Twitter 賬號:http://twitter.com/oreillymedia
我們的YouTube 網址:http://www.youtube.com/oreillymedia
讀者服務
輕松注冊成為博文視點社區用戶(www.broadview.com.cn),您即可享受以下服務:
·提交勘誤:您對書中內容的修改意見可在 提交勘誤處提交,若被采納,將獲贈博文視點社區積分(在您購買電子書時,積分可用來抵扣相應金額)。
·交流互動:在頁面下方 讀者評論 處留下您的疑問或觀點,與我們和其他讀者一同學習交流。
頁面入口:http://www.broadview.com.cn/31722
TedDunning,MapRTechnologies首席應用架構師,開源社區的活躍成員。現任ApacheFoundation孵化器的VP,是大量項目的冠軍得主和導師,也是ApacheZooKeeper和Drill項目的貢獻者和PMC成員。
EllenFriedman,解決方案咨詢師,著名演講者和作家,目前主要撰寫大數據方面的著作。她是ApacheDrill和ApacheMahout項目的貢獻者。
譯者簡介
唐李洋,博士,研究方向為云計算、并行計算、數據挖掘與分析等。曾經在Cisco從事過數據架構方面的設計與分析工作。
目錄
第1 章 為什么使用流 1
飛機、火車和汽車:車聯網和物聯網 3
流數據:這才是現實世界 6
什么時候需要流 8
不止是實時:流架構的更多優勢 11
流架構的最佳實踐 13
醫療數據流案例 14
流數據:架構設計的核心 17
第2 章 流式架構 19
狹義視角:實時應用 20
通用流式架構的關鍵問題 21
消息傳遞技術的重要性 24
實時分析工具 28
Apache Storm 30
Apache Spark Streaming 31
Apache Flink 32
Apache Apex 33
流分析功能比較 33
小結 36
第3 章 流架構:微服務的理想平臺 37
為什么需要微服務 38
微服務需要哪些支撐 41
關于微服務的更多詳情 42
設計流架構:以在線視頻服務為例 45
新設計:支持消息傳遞的基礎設施 47
通用微架構的重要性 49
命名問題 50
為什么使用分布式文件和NoSQL 數據庫 52
視頻服務的新設計 52
小結:綜合平臺視角 54
第4 章 使用Kafka 進行流傳輸 57
Kafka 的動機 57
Kafka 的創新 58
Kafka 的基本概念 60
排序 61
持久化 62
Kafka API 62
KafkaProducer API 63
KafkaConsumer API 66
遺留API 70
Kafka 實用程序 71
負載均衡 71
鏡像 72
Kafka 的陷阱 73
產品環境下的Kafka 73
主題和分區的數目有限 74
手動均衡分區負載 75
沒有固有的序列化機制 76
鏡像的不足 77
小結 78
第5 章 MapR Streams 79
MapR Streams 的創新 79
MapR 流系統的歷史和情境 82
MapR Streams 的工作原理 84
配置MapR Streams 86
地理分布式復制 89
MapR Streams 的陷阱 91
第6 章 基于流數據的欺詐檢測 ..93
刷卡速度 94
快速響應決策:“這是欺詐嗎” 95
多用途流數據 98
欺詐檢測器的向上擴展 99
小結 101
第7 章 地理分布式數據流 103
利益相關者 104
設計目標 106
設計選擇 106
我們的設計 108
數據 108
控制誰能訪問流數據 109
基于流的地理分布式復制的優勢 .110
第8 章 總結 113
流式架構的優勢 115
過渡到流架構 116
小結 119
附錄A 附加資源 121
作者簡介 125