新書推薦:
《
大宋悬疑录:貔貅刑
》
售價:NT$
340.0
《
人生解忧:佛学入门四十讲
》
售價:NT$
490.0
《
东野圭吾:分身(东野圭吾无法再现的双女主之作 奇绝瑰丽、残忍又温情)
》
售價:NT$
295.0
《
浪潮将至
》
售價:NT$
395.0
《
在虚无时代:与马克斯·韦伯共同思考
》
售價:NT$
260.0
《
日内交易与波段交易的资金风险管理
》
售價:NT$
390.0
《
自然信息图:一目了然的万物奇观
》
售價:NT$
640.0
《
经纬度丛书·州县之民:治乱之间的小民命运
》
售價:NT$
440.0
|
編輯推薦: |
Kafka*初是由LinkedIn公司开发的消息系统,现在已成为Apache的开源项目。早期版本的Kafka主要是作为一个分布式、可分区和具有副本的消息系统,随着版本的不断迭代,在0.10.x版本之后Kafka已成为一个分布式流数据处理平台,特别是Kafka Streams的出现,使得Kafka对流数据处理变得更加简单。 Kafka发展至今已具备很多特性,如分布式、高吞吐量、低延迟、高水平扩展性、高容错性等,也正是由于Kafka具备这些特性,使Kafka在大数据处理、日志收集、实时监控、离线统计分析等应用场景都被广泛使用。 本书内容按照从抽象到具体、从点到线再到面的学习思维模式进行编排,由浅入深、理论与实践相结合地对Kafka进行了讲解和分析。剖析Kafka实现原理时,Kafka核心组件各成一节;讲解Kafka基本操作及应用实践时,从简单操作拓展到高级应用。全书的各章之间没有很强的依赖关系,读者可以从其中任何一章开始阅读。 本书虽适合作为入门书籍,但其内容丰富又不失深度,既深入剖析了Kafka核心原理,又侧重实际操作实战。阅读本书读者不仅可以掌握如何应用Kafka,更重要的是还可以了解
|
內容簡介: |
《Kafka入门与实践》以Kafka 0.10.1.1版本以基础,对Kafka的基本组件的实现细节及其基本应用进行了详细介绍,同时,通过对Kafka与当前大数据主流框架整合应用案例的讲解,进一步展现了Kafka在实际业务中的作用和地位。本书共10章,按照从抽象到具体、从点到线再到面的学习思维模式,由浅入深,理论与实践相结合,对Kafka进行了分析讲解。 《Kafka入门与实践》中的大量实例来源于作者在实际工作中的实践,具有现实指导意义。相信读者阅读完本书之后,能够全面掌握Kafka的基本实现原理及其基本操作,能够根据书中的案例举一反三,解决实际工作和学习中的问题。此外,在阅读本书时,读者可以根据本书对Kafka理论的分析,再结合Kafka源码进行定位学习,了解Kafka的设计和思想以及更多的编码技巧。 《Kafka入门与实践》适合应用Kafka的专业技术人员阅读,包括但不限于大数据相关应用的开发者、运维者和爱好者,也适合高等院校、培训结构相关专业的师生使用。
|
關於作者: |
牟大恩,武汉大学硕士,曾先后在网易杭州研究院、掌门科技、优酷土豆集团担任高级开发工程师和资深开发工程师职务,目前就职于海通证券总部。有多年的Java开发及系统设计经验,专注于互联网金融及大数据应用相关领域。
|
目錄:
|
第1章 Kafka简介1
1.1 Kafka背景1
1.2 Kafka基本结构2
1.3 Kafka基本概念2
1.4 Kafka设计概述6
1.4.1 Kafka设计动机6
1.4.2 Kafka特性6
1.4.3 Kafka应用场景8
1.5 本书导读9
1.6 小结9
第2章 Kafka安装配置11
2.1 基础环境配置11
2.1.1 JDK安装配置11
2.1.2 SSH安装配置13
2.1.3 ZooKeeper环境15
2.2 Kafka单机环境部署18
2.2.1 Windows环境安装Kafka19
2.2.2 Linux环境安装Kafka19
2.3 Kafka伪分布式环境部署21
2.4 Kafka集群环境部署22
2.5 Kafka Manager安装22
2.6 Kafka源码编译25
2.6.1 Scala安装配置25
2.6.2 Gradle安装配置26
2.6.3 Kafka源码编译26
2.6.4 Kafka导入Eclipse30
2.7 小结31
第3章 Kafka核心组件33
3.1 延迟操作组件33
3.1.1 DelayedOperation33
3.1.2 DelayedOperationPurgatory35
3.1.3 DelayedProduce36
3.1.4 DelayedFetch38
3.1.5 DelayedJoin38
3.1.6 DelayedHeartbeat39
3.1.7 DelayedCreateTopics40
3.2 控制器40
3.2.1 控制器初始化41
3.2.2 控制器选举过程46
3.2.3 故障转移48
3.2.4 代理上线与下线49
3.2.5 主题管理51
3.2.6 分区管理54
3.3 协调器58
3.3.1 消费者协调器58
3.3.2 组协调器60
3.4 网络通信服务64
3.4.1 Acceptor65
3.4.2 Processor66
3.4.3 RequestChannel68
3.4.4 SocketServer启动过程69
3.5 日志管理器70
3.5.1 Kafka日志结构70
3.5.2 日志管理器启动过程77
3.5.3 日志加载及恢复79
3.5.4 日志清理80
3.6 副本管理器84
3.6.1 分区86
3.6.2 副本88
3.6.3 副本管理器启动过程89
3.6.4 副本过期检查90
3.6.5 追加消息92
3.6.6 拉取消息95
3.6.7 副本同步过程97
3.6.8 副本角色转换99
3.6.9 关闭副本101
3.7 Handler103
3.8 动态配置管理器104
3.9 代理健康检测106
3.10 Kafka内部监控107
3.11 小结110
第4章 Kafka核心流程分析111
4.1 KafkaServer启动流程分析111
4.2 创建主题流程分析115
4.2.1 客户端创建主题115
4.2.2 分区副本分配117
4.3 生产者121
4.3.1 Eclipse运行生产者源码121
4.3.2 生产者重要配置说明123
4.3.3 OldProducer执行流程124
4.3.4 KafkaProducer实现原理127
4.4 消费者140
4.4.1 旧版消费者140
4.4.2 KafkaConsumer初始化140
4.4.3 消费订阅144
4.4.4 消费消息145
4.4.5 消费偏移量提交149
4.4.6 心跳探测150
4.4.7 分区数与消费者线程的关系151
4.4.8 消费者平衡过程153
4.5 小结154
第5章 Kafka基本操作实战155
5.1 KafkaServer管理155
5.1.1 启动Kafka单个节点155
5.1.2 启动Kafka集群159
5.1.3 关闭Kafka单个节点160
5.1.4 关闭Kafka集群161
5.2 主题管理162
5.2.1 创建主题162
5.2.2 删除主题164
5.2.3 查看主题165
5.2.4 修改主题166
5.3 生产者基本操作168
5.3.1 启动生产者168
5.3.2 创建主题169
5.3.3 查看消息170
5.3.4 生产者性能测试工具170
5.4 消费者基本操作174
5.4.1 消费消息174
5.4.2 单播与多播179
5.4.3 查看消费偏移量181
5.4.4 消费者性能测试工具183
5.5 配置管理183
5.5.1 主题级别配置184
5.5.2 代理级别设置185
5.5.3 客户端用户级别配置187
5.6 分区操作188
5.6.1 分区Leader平衡188
5.6.2 分区迁移190
5.6.3 增加分区194
5.6.4 增加副本195
5.7 连接器基本操作198
5.7.1 独立模式198
5.7.2 REST风格API应用201
5.7.3 分布式模式204
5.8 Kafka Manager应用209
5.9 Kafka安全机制211
5.9.1 利用SASLPLAIN进行身份认证212
5.9.2 权限控制215
5.10 镜像操作218
5.11 小结219
第6章 Kafka API编程实战221
6.1 主题管理222
6.1.1 创建主题222
6.1.2 修改主题级别配置223
6.1.3 增加分区224
6.1.4 分区副本重分配224
6.1.5 删除主题225
6.2 生产者API应用225
6.2.1 单线程生产者226
6.2.2 多线程生产者231
6.3 消费者API应用233
6.3.1 旧版消费者API应用233
6.3.2 新版消费者API应用239
6.4 自定义组件实现247
6.4.1 分区器247
6.4.2 序列化与反序列化249
6.5 Spring与Kafka整合应用257
6.5.1 生产者259
6.5.2 消费者263
6.6 小结266
第7章 Kafka Streams267
7.1 Kafka Streams简介267
7.2 Kafka Streams基本概念268
7.2.1 流268
7.2.2 流处理器268
7.2.3 处理器拓扑268
7.2.4 时间269
7.2.5 状态270
7.2.6 KStream和KTable270
7.2.7 窗口271
7.3 Kafka Streams API介绍272
7.3.1 KStream与KTable272
7.3.2 窗口操作274
7.3.3 连接操作275
7.3.4 变换操作277
7.3.5 聚合操作279
7.4 接口恶意访问自动检测281
7.4.1 应用描述281
7.4.2 具体实现282
7.5 小结285
第8章 Kafka数据采集应用287
8.1 Log4j集成Kafka应用287
8.1.1 应用描述287
8.1.2 具体实现287
8.2 Kafka与Flume整合应用289
8.2.1 Flume简介290
8.2.2 Flume与Kafka比较291
8.2.3 Flume的安装配置291
8.2.4 Flume采集日志写入Kafka293
8.3 Kafka与Flume和HDFS整合应用294
8.3.1 Hadoop安装配置295
8.3.2 Flume采集Kafka消息写入HDFS298
8.4 小结301
第9章 Kafka与ELK整合应用303
9.1 ELK环境搭建304
9.1.1 Elasticsearch安装配置304
9.1.2 Logstash安装配置307
9.1.3 Kibana安装配置308
9.2 Kafka与Logstash整合309
9.2.1 Logstash收集日志到Kafka309
9.2.2 Logstash从Kafka消费日志310
9.3 日志采集分析系统312
9.3.1 Flume采集日志配置312
9.3.2 Logstash拉取日志配置313
9.3.3 Kibana日志展示314
9.4 服务器性能监控系统315
9.4.1 Metricbeat安装316
9.4.2 采集信息存储到Elasticsearch316
9.4.3 加载beats-dashboards318
9.4.4 服务器性能监控系统具体实现318
9.5 小结321
第10章 Kafka与Spark整合应用323
10.1 Spark简介323
10.2 Spark基本操作324
10.2.1 Spark安装325
10.2.2 Spark shell应用326
10.2.3 spark-submit提交作业327
10.3 Spark在智能投顾领域应用328
10.3.1 应用描述328
10.3.2 具体实现329
10.4 热搜词统计334
10.4.1 应用描述334
10.4.2 具体实现335
10.5 小结340
|
|