第1章 消息系统介绍 1
理解消息系统的原则 2
理解消息系统 3
点对点消息系统 5
发布/订阅消息系统 8
AQMP 10
在大数据流应用程序中使用消息系统 12
总结 14
第2章 介绍Kafka分布式消息平台 16
Kakfa来源 16
Kafka架构 17
消息topics 20
消息分区 21
复制和复制日志 24
消息生产者 26
消息消费者 27
Zookeeper扮演的角色 27
总结 28
第3章 深入研究Kafka生产者 30
Kafka生产者内部机制 30
Kafka生产者API 33
Producer对象和ProducerRecord对象 35
自定义分区 38
其他生产者配置 40
Java编程语言:Kafka生产者示例 42
常见的消息发布模式 44
最佳实践 46
总结 48
第4章 深入研究Kafka消费者 49
Kafka消费者内部机制 50
理解Kafka消费者的职责 50
Kafka消费者API 52
消费者配置 52
订阅和轮询 54
提交和轮询 56
其他配置 59
利用Java实现Kafka消费者 60
利用Scala实现Kafka消费者 62
Rebalance listeners 64
常用的消息消费模式 64
最佳实践 67
总结 68
第5章 集成Kafka构建Spark Streaming应用 69
Spark介绍 70
Spark架构 70
Spark的核心 72
Spark生态系统 73
Spark Streaming 75
Receiver-based集成 75
Receiver-based approach的缺点 77
Receiver-based集成的Java示例 77
Receiver-based集成的Scala示例 79
Direct approach 80
Direct approach的Java示例 82
Direct approach的Scala示例 83
日志处理用例——欺诈IP检测 84
Maven 85
生产者 89
Reader属性 89
生产者代码 90
欺诈IP查找 92
暴露Hive表 93
Streaming代码 94
总结 97
第6章 集成Kafka构建Storm应用 98
Apache Storm介绍 98
Storm集群架构 99
Storm应用程序的概念 100
Apache Heron介绍 101
Heron架构 102
Heron topology架构 103
集成Apache Kafka与Apache Storm-Java 104
示例 105
集成Apache Kafka与Apache Storm-Scala 110
用例——使用Storm、Kafka和Hive处理日志 114
生产者 118
生产者代码 119
欺诈IP查找 122
Storm应用程序 123
运行项目 132
总结 133
第7章 使用Kafka与Confluent Platform 134
Confluent Platform介绍 135
深入Confluent Platform架构 136
理解Kafka Connect和Kafka Stream 139
Kafka Streams 139
使用Schema Registry与Avro交互 140
将Kafka数据移动到HDFS 142
Camus 142
运行Camus 143
Gobblin 144
Gobblin架构 144
Kafka Connect 146
Flume 147
总结 150
第8章 使用Kafka构建ETL管道 151
在ETL管道中使用Kafka 151
介绍Kafka Connect 153
深入研究Kafka Connect 154
介绍使用Kafka Connect示例 155
Kafka Connect常见的用例 159
总结 160
第9章 使用Kafka Streams构建流应用程序 161
介绍Kafka Streams 161
在流处理中使用Kafka 162
Kafka Stream——轻量级流处理库 163
Kafka Stream架构 164
集成框架的优势 166
理解Tables和Streams 167
Maven依赖 167
Kafka Stream单词计数 168
KTable 170
Kafka Stream使用案例 171
Kafka Streams的Maven依赖 171
reader属性 172
IP记录生产者 173
IP查询服务 176
欺诈检测应用程序 177
总结 179
第10章 Kafka集群部署 180
Kafka集群的内部结构 180
Zookeeper角色 181
复制 182
元数据(Metadata)请求处理 184
生产者(Producer)请求处理 184
消费者(Consumer)请求处理 185
容量规划 186
容量规划的目标 186
复制因子 186
内存 187
硬盘驱动器 187
网络 188
CPU 188
Kafka单集群部署 189
Kafka多集群部署 190
退役brokers 192
数据迁移 192
总结 193
第11章 在大数据应用中使用Kafka 194
管理Kafka的高容量 195
适当的硬件选择 195
生产者读取和消费者写入的选择 197
Kafka消息传递语义 198
至少一次传递 199
最多一次传递 202
正好一次传递 203
大数据和Kafka常见的使用模式 204
Kafka和数据治理 206
报警和监控 207
有用的Kafka指标 208
Kafka生产者指标 208
Kafka broker指标 209
Kafka消费者指标 209
总结 210
第12章 Kafka安全 211
Kafka安全的概述 211
SSL有线加密 212
Kafka启用SSL的步骤 213
为Kafka broker配置SSL 214
为Kafka客户端配置SSL 214
Kerberos SASL认证 215
在Kafka中启用SASL/GSSAPI的步骤 217
为Kafka broker配置SASL 217
为Kafka客户端配置SASL——生产者和消费者 219
理解ACL和授权 220
常见的ACL操作 221
ACLs列表 222
Zookeeper身份验证 223
Apache Ranger授权 224
为Ranger添加Kafka服务 224
添加策略(policies) 225
最佳实践 227
总结 229
第13章 流应用程序设计的考虑 230
延迟和吞吐量 231
数据和状态的持久性 232
数据源 232
外部数据查询 233
数据格式 233
数据序列化 234
并行度 234
无序的事件 235
消息处理语义 235
总结 236