Kafka Streams实战

Kafka Streams实战
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者: [美] (William P.Bejeck)
2019-05
版次: 1
ISBN: 9787115507396
定价: 69.00
装帧: 平装
开本: 其他
页数: 235页
字数: 344千字
26人买过
  • Kafka Streams是Kafka提供的一个用于构建流式处理程序的Java库,它与Storm、Spark等流式处理框架不同,是一个仅依赖于Kafka的Java库,而不是一个流式处理框架。除Kafka之外,Kafka Streams不需要额外的流式处理集群,提供了轻量级、易用的流式处理API。本书包括4部分,共9章,从基础API到复杂拓扑的应用,通过具体示例由浅入深地详细介绍了Kafka Streams基础知识及使用方法。本书的主要内容包含流式处理发展历程和Kafka Streams工作原理的介绍,Kafka基础知识的介绍,使用Kafka Streams实现一个具体流式处理应用程序,讨论状态存储及其使用方法,讨论表和流的二元性及使用场景,介绍Kafka Streams应用程序的监控及测试方法,介绍使用Kafka Connect将现有数据源集成到Kafka Streams中,使用KSQL进行交互式查询等。

    本书适合使用Kafka Streams实现流式处理应用的开发人员阅读。 小威廉·P.贝杰克(William P.Bejeck Jr.,本名Bill Bejeck)是Kafka Streams源码贡献者,在Conflument公司的Kafka Streams团队工作,有15年以上的软件开发经验,其中8年专注于后端开发,特别是处理大量数据,在数据提炼团队中,使用Kafka来改善下游客户的数据流。 部分开启Kafka Streams之旅

    章 欢迎来到Kafka Streams3

    1.1大数据的发展以及它是如何改变程序设计方式的3

    1.1.1大数据起源4

    1.1.2MapReduce中的重要概念5

    1.1.3批处理还不够7

    1.2流式处理简介8

    1.3处理购买交易9

    1.3.1权衡流式处理的选择9

    1.3.2将需求解构为图表10

    1.4改变看待购买交易的视角10

    1.4.1源节点11

    1.4.2信用卡屏蔽节点11

    1.4.3模式节点11

    1.4.4奖励节点12

    1.4.5存储节点13

    1.5Kafka Streams在购买处理节点图中的应用13

    1.6Kafka Streams在购买交易流中的应用14

    1.6.1定义源15

    1.6.2个处理器:屏蔽信用卡号码15

    1.6.3第二个处理器:购买模式16

    1.6.4第三个处理器:客户奖励17

    1.6.5第四个处理器:写入购买记录18

    1.7小结18

    第2章 Kafka快速指南20

    2.1数据问题20

    2.2使用Kafka处理数据21

    2.2.1ZMart原始的数据平台21

    2.2.2一个Kafka销售交易数据中心22

    2.3Kafka架构23

    2.3.1Kafka是一个消息代理23

    2.3.2Kafka是一个日志24

    2.3.3Kafka日志工作原理25

    2.3.4Kafka和分区25

    2.3.5分区按键对数据进行分组26

    2.3.6编写自定义分区器27

    2.3.7指定一个自定义分区器28

    2.3.8确定恰当的分区数29

    2.3.9分布式日志29

    2.3.10ZooKeeper:领导者、追随者和副本30

    2.3.11Apache ZooKeeper31

    2.3.12选择一个控制器31

    2.3.13副本31

    2.3.14控制器的职责32

    2.3.15日志管理33

    2.3.16日志删除33

    2.3.17日志压缩35

    2.4生产者发送消息36

    2.4.1生产者属性38

    2.4.2指定分区和时间戳39

    2.4.3指定分区39

    2.4.4Kafka中的时间戳40

    2.5消费者读取消息40

    2.5.1管理偏移量41

    2.5.2自动提交偏移量42

    2.5.3手动提交偏移量42

    2.5.4创建消费者43

    2.5.5消费者和分区43

    2.5.6再平衡43

    2.5.7更细粒度的消费者分配44

    2.5.8消费者示例44

    2.6安装和运行Kafka45

    2.6.1Kafka本地配置45

    2.6.2运行Kafka46

    2.6.3发送条消息47

    2.7小结49

    第二部分Kafka Streams开发篇

    第3章开发Kafka Streams53

    3.1流式处理器API53

    3.2Kafka Streams的Hello World54

    3.2.1构建“Yelling App”的拓扑55

    3.2.2Kafka Streams配置58

    3.2.3Serde的创建59

    3.3处理客户数据60

    3.3.1构建一个拓扑61

    3.3.2创建一个自定义的Serde67

    3.4交互式开发69

    3.5下一步71

    3.5.1新需求71

    3.5.2将记录写入Kafka之外76

    3.6小结78

    第4章流和状态79

    4.1事件的思考79

    4.2将状态操作应用到Kafka Stream81

    4.2.1值转换处理器82

    4.2.2有状态的客户奖励82

    4.2.3初始化值转换器84

    4.2.4使用状态将Purchase对象映射为Reward Accumulator84

    4.2.5更新奖励处理器88

    4.3使用状态存储查找和记录以前看到的数据89

    4.3.1数据本地化90

    4.3.2故障恢复和容错91

    4.3.3Kafka Streams使用状态存储91

    4.3.4其他键/值存储供应者92

    4.3.5状态存储容错93

    4.3.6配置变更日志主题93

    4.4连接流以增加洞察力94

    4.4.1设置数据95

    4.4.2生成包含客户ID的键来执行连接96

    4.4.3构建连接98

    4.4.4其他连接选项102

    4.5Kafka Streams中的时间戳104

    4.5.1自带的时间戳提取器实现类105

    4.5.2WallclockTimestampExtractor106

    4.5.3自定义时间戳提取器106

    4.5.4指定一个时间戳提取器107

    4.6小结108

    第5章KTable API109

    5.1流和表之间的关系110

    5.1.1记录流110

    5.1.2更新记录或变更日志111

    5.1.3事件流与更新流对比113

    5.2记录更新和KTable配置115

    5.2.1设置缓存缓冲大小115

    5.2.2设置提交间隔116

    5.3聚合和开窗操作117

    5.3.1按行业汇总股票成交量118

    5.3.2开窗操作122

    5.3.3连接KStream和KTable128

    5.3.4GlobalKTable130

    5.3.5可查询的状态133

    5.4小结133

    第6章处理器API135

    6.1更高阶抽象与更多控制的权衡135

    6.2使用源、处理器和接收器创建一个拓扑136

    6.2.1添加一个源节点136

    6.2.2添加一个处理器节点137

    6.2.3增加一个接收器节点140

    6.3通过股票分析处理器深入研究处理器API141

    6.3.1股票表现处理器应用程序142

    6.3.2process()方法145

    6.3.3punctuator执行147

    6.4组合处理器148

    6.5集成处理器API和Kafka Streams API158

    6.6小结159

    第三部分管理Kafka Streams

    第7章监控和性能163

    7.1Kafka基本监控163

    7.1.1测评消费者和生产者性能164

    7.1.2检查消费滞后165

    7.1.3拦截生产者和消费者166

    7.2应用程序指标169

    7.2.1指标配置171

    7.2.2如何连接到收集到的指标172

    7.2.3使用JMX172

    7.2.4查看指标176

    7.3更多Kafka Streams调试技术177

    7.3.1查看应用程序的表现形式177

    7.3.2获取应用程序各种状态的通知178

    7.3.3使用状态监听器179

    7.3.4状态恢复监听器181

    7.3.5未捕获的异常处理器184

    7.4小结184

    第8章测试Kafka Streams应用程序185

    8.1测试拓扑186

    8.1.1构建测试用例188

    8.1.2测试拓扑中的状态存储190

    8.1.3测试处理器和转换器191

    8.2集成测试193

    8.3小结199

    第四部分Kafka Streams进阶

    第9章Kafka Streams的不错应用203

    9.1将Kafka与其他数据源集成204

    9.1.1使用Kafka Connect集成数据205

    9.1.2配置Kafka Connect205

    9.1.3转换数据207

    9.2替代数据库211

    9.2.1交互式查询的工作原理213

    9.2.2分配状态存储213

    9.2.3创建和查找分布式状态存储215

    9.2.4编写交互式查询216

    9.2.5查询服务器内部218

    9.3KSQL221

    9.3.1KSQL流和表222

    9.3.2KSQL架构222

    9.3.3安装和运行KSQL224

    9.3.4创建一个KSQL流224

    9.3.5编写KSQL查询226

    9.3.6创建一张KSQL表227

    9.3.7配置KSQL227

    9.4小结228

    附录A额外的配置信息229

    附录B精确一次处理语义234
  • 内容简介:
    Kafka Streams是Kafka提供的一个用于构建流式处理程序的Java库,它与Storm、Spark等流式处理框架不同,是一个仅依赖于Kafka的Java库,而不是一个流式处理框架。除Kafka之外,Kafka Streams不需要额外的流式处理集群,提供了轻量级、易用的流式处理API。本书包括4部分,共9章,从基础API到复杂拓扑的应用,通过具体示例由浅入深地详细介绍了Kafka Streams基础知识及使用方法。本书的主要内容包含流式处理发展历程和Kafka Streams工作原理的介绍,Kafka基础知识的介绍,使用Kafka Streams实现一个具体流式处理应用程序,讨论状态存储及其使用方法,讨论表和流的二元性及使用场景,介绍Kafka Streams应用程序的监控及测试方法,介绍使用Kafka Connect将现有数据源集成到Kafka Streams中,使用KSQL进行交互式查询等。

    本书适合使用Kafka Streams实现流式处理应用的开发人员阅读。
  • 作者简介:
    小威廉·P.贝杰克(William P.Bejeck Jr.,本名Bill Bejeck)是Kafka Streams源码贡献者,在Conflument公司的Kafka Streams团队工作,有15年以上的软件开发经验,其中8年专注于后端开发,特别是处理大量数据,在数据提炼团队中,使用Kafka来改善下游客户的数据流。
  • 目录:
    部分开启Kafka Streams之旅

    章 欢迎来到Kafka Streams3

    1.1大数据的发展以及它是如何改变程序设计方式的3

    1.1.1大数据起源4

    1.1.2MapReduce中的重要概念5

    1.1.3批处理还不够7

    1.2流式处理简介8

    1.3处理购买交易9

    1.3.1权衡流式处理的选择9

    1.3.2将需求解构为图表10

    1.4改变看待购买交易的视角10

    1.4.1源节点11

    1.4.2信用卡屏蔽节点11

    1.4.3模式节点11

    1.4.4奖励节点12

    1.4.5存储节点13

    1.5Kafka Streams在购买处理节点图中的应用13

    1.6Kafka Streams在购买交易流中的应用14

    1.6.1定义源15

    1.6.2个处理器:屏蔽信用卡号码15

    1.6.3第二个处理器:购买模式16

    1.6.4第三个处理器:客户奖励17

    1.6.5第四个处理器:写入购买记录18

    1.7小结18

    第2章 Kafka快速指南20

    2.1数据问题20

    2.2使用Kafka处理数据21

    2.2.1ZMart原始的数据平台21

    2.2.2一个Kafka销售交易数据中心22

    2.3Kafka架构23

    2.3.1Kafka是一个消息代理23

    2.3.2Kafka是一个日志24

    2.3.3Kafka日志工作原理25

    2.3.4Kafka和分区25

    2.3.5分区按键对数据进行分组26

    2.3.6编写自定义分区器27

    2.3.7指定一个自定义分区器28

    2.3.8确定恰当的分区数29

    2.3.9分布式日志29

    2.3.10ZooKeeper:领导者、追随者和副本30

    2.3.11Apache ZooKeeper31

    2.3.12选择一个控制器31

    2.3.13副本31

    2.3.14控制器的职责32

    2.3.15日志管理33

    2.3.16日志删除33

    2.3.17日志压缩35

    2.4生产者发送消息36

    2.4.1生产者属性38

    2.4.2指定分区和时间戳39

    2.4.3指定分区39

    2.4.4Kafka中的时间戳40

    2.5消费者读取消息40

    2.5.1管理偏移量41

    2.5.2自动提交偏移量42

    2.5.3手动提交偏移量42

    2.5.4创建消费者43

    2.5.5消费者和分区43

    2.5.6再平衡43

    2.5.7更细粒度的消费者分配44

    2.5.8消费者示例44

    2.6安装和运行Kafka45

    2.6.1Kafka本地配置45

    2.6.2运行Kafka46

    2.6.3发送条消息47

    2.7小结49

    第二部分Kafka Streams开发篇

    第3章开发Kafka Streams53

    3.1流式处理器API53

    3.2Kafka Streams的Hello World54

    3.2.1构建“Yelling App”的拓扑55

    3.2.2Kafka Streams配置58

    3.2.3Serde的创建59

    3.3处理客户数据60

    3.3.1构建一个拓扑61

    3.3.2创建一个自定义的Serde67

    3.4交互式开发69

    3.5下一步71

    3.5.1新需求71

    3.5.2将记录写入Kafka之外76

    3.6小结78

    第4章流和状态79

    4.1事件的思考79

    4.2将状态操作应用到Kafka Stream81

    4.2.1值转换处理器82

    4.2.2有状态的客户奖励82

    4.2.3初始化值转换器84

    4.2.4使用状态将Purchase对象映射为Reward Accumulator84

    4.2.5更新奖励处理器88

    4.3使用状态存储查找和记录以前看到的数据89

    4.3.1数据本地化90

    4.3.2故障恢复和容错91

    4.3.3Kafka Streams使用状态存储91

    4.3.4其他键/值存储供应者92

    4.3.5状态存储容错93

    4.3.6配置变更日志主题93

    4.4连接流以增加洞察力94

    4.4.1设置数据95

    4.4.2生成包含客户ID的键来执行连接96

    4.4.3构建连接98

    4.4.4其他连接选项102

    4.5Kafka Streams中的时间戳104

    4.5.1自带的时间戳提取器实现类105

    4.5.2WallclockTimestampExtractor106

    4.5.3自定义时间戳提取器106

    4.5.4指定一个时间戳提取器107

    4.6小结108

    第5章KTable API109

    5.1流和表之间的关系110

    5.1.1记录流110

    5.1.2更新记录或变更日志111

    5.1.3事件流与更新流对比113

    5.2记录更新和KTable配置115

    5.2.1设置缓存缓冲大小115

    5.2.2设置提交间隔116

    5.3聚合和开窗操作117

    5.3.1按行业汇总股票成交量118

    5.3.2开窗操作122

    5.3.3连接KStream和KTable128

    5.3.4GlobalKTable130

    5.3.5可查询的状态133

    5.4小结133

    第6章处理器API135

    6.1更高阶抽象与更多控制的权衡135

    6.2使用源、处理器和接收器创建一个拓扑136

    6.2.1添加一个源节点136

    6.2.2添加一个处理器节点137

    6.2.3增加一个接收器节点140

    6.3通过股票分析处理器深入研究处理器API141

    6.3.1股票表现处理器应用程序142

    6.3.2process()方法145

    6.3.3punctuator执行147

    6.4组合处理器148

    6.5集成处理器API和Kafka Streams API158

    6.6小结159

    第三部分管理Kafka Streams

    第7章监控和性能163

    7.1Kafka基本监控163

    7.1.1测评消费者和生产者性能164

    7.1.2检查消费滞后165

    7.1.3拦截生产者和消费者166

    7.2应用程序指标169

    7.2.1指标配置171

    7.2.2如何连接到收集到的指标172

    7.2.3使用JMX172

    7.2.4查看指标176

    7.3更多Kafka Streams调试技术177

    7.3.1查看应用程序的表现形式177

    7.3.2获取应用程序各种状态的通知178

    7.3.3使用状态监听器179

    7.3.4状态恢复监听器181

    7.3.5未捕获的异常处理器184

    7.4小结184

    第8章测试Kafka Streams应用程序185

    8.1测试拓扑186

    8.1.1构建测试用例188

    8.1.2测试拓扑中的状态存储190

    8.1.3测试处理器和转换器191

    8.2集成测试193

    8.3小结199

    第四部分Kafka Streams进阶

    第9章Kafka Streams的不错应用203

    9.1将Kafka与其他数据源集成204

    9.1.1使用Kafka Connect集成数据205

    9.1.2配置Kafka Connect205

    9.1.3转换数据207

    9.2替代数据库211

    9.2.1交互式查询的工作原理213

    9.2.2分配状态存储213

    9.2.3创建和查找分布式状态存储215

    9.2.4编写交互式查询216

    9.2.5查询服务器内部218

    9.3KSQL221

    9.3.1KSQL流和表222

    9.3.2KSQL架构222

    9.3.3安装和运行KSQL224

    9.3.4创建一个KSQL流224

    9.3.5编写KSQL查询226

    9.3.6创建一张KSQL表227

    9.3.7配置KSQL227

    9.4小结228

    附录A额外的配置信息229

    附录B精确一次处理语义234
查看详情
12
相关图书 / 更多
Kafka Streams实战
KaplanSCHWESER2022FRM?Notes备考笔记二级·上(1-2套装共2本)
美国开普兰公司 编
Kafka Streams实战
Kafka进阶
赵渝强
Kafka Streams实战
KaliLinux高级渗透测试(原书第3版)
[加拿大]罗伯特·贝格斯(Robert Beggs) 著;[印度]维杰·库马尔·维卢(Vijay、Kumar、Velu、祝清意、蒋溢、罗文俊、李琪 译
Kafka Streams实战
Kali Linux高级渗透测试(原书第4版)
维杰·库马尔·维卢 著
Kafka Streams实战
Kafka权威指南(第2版)
[美]格温·沙皮拉(Gwen Shapira);[美]托德·帕利诺(Todd
Kafka Streams实战
Kafka实战
迪伦·斯科特(Dylan Scott)维克托·盖莫夫(Viktor Gamov)
Kafka Streams实战
Kafka基础架构与设计
智酷道捷内容与产品中心
Kafka Streams实战
Kali Linux渗透测试全流程详解
王佳亮
Kafka Streams实战
Kali Linux2 网络渗透测试实践指南 第2版
李华峰
Kafka Streams实战
Kaldi语音识别实战
陈果果
Kafka Streams实战
Kali安全渗透测试实践教程
张宝军、潘瑞芳、俞承杭、俞斌 著
Kafka Streams实战
Kaplan Writing Power (Third Edition)(Kaplan写作指导)
Nancy White 著
您可能感兴趣 / 更多
Kafka Streams实战
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
Kafka Streams实战
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
Kafka Streams实战
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
Kafka Streams实战
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
Kafka Streams实战
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
Kafka Streams实战
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
Kafka Streams实战
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
Kafka Streams实战
意大利文艺复兴新艺术史
[美]迈克尔·韦恩·科尔 著;[美]斯蒂芬·J·坎贝尔;邵亦杨
Kafka Streams实战
汤姆素亚历险记:中小学生课外阅读快乐读书吧 儿童文学无障碍有声伴读世界名著童话故事
[美]马克·吐温
Kafka Streams实战
老人与海 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]海明威
Kafka Streams实战
养育的觉醒:全面激发孩子自驱力,教你如何心平气和做妈妈
[美]凯文·莱曼 著;唐晓璐 译;斯坦威 出品
Kafka Streams实战
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译