深入理解Kafka与Pulsar:消息流平台的实践与剖析9787121440014
正版图书,可开发票,请放心购买。
¥
103.5
7.5折
¥
138
全新
库存11件
作者梁国斌
出版社电子工业出版社
ISBN9787121440014
出版时间2021-04
装帧平装
开本16开
定价138元
货号11692651
上书时间2024-12-24
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
梁国斌,后端高级开发,源码爱好者,对Netty、Spring、Redis、Kafka、Pulsar等中间件有深入研究,技术公众号binecy作者。
目录
第1部分 基础应用
第1章 Kafka与Pulsar概述
1.1 简介
1.2 特性
1.3 概念
1.3.1 Kafka基础概念
1.3.2 Pulsar基础概念
1.4 本章总结
第2章 Kafka的部署与调试
2.1 安装Kafka集群
2.1.1 部署ZooKeeper集群
2.1.2 部署Kafka集群
2.2 调试Kafka
2.3 本章总结
第3章 Kafka的应用
3.1 脚本
3.1.1 主题管理
3.1.2 生产者与消费者
3.1.3 动态配置
3.2 客户端
3.2.1 生产者
3.2.2 消费者
3.3 消息序列化
3.4 配额
3.5 本章总结
第4章 Pulsar的部署与调试
4.1 本地部署
4.2 集群部署
4.2.1 ZooKeeper集群部署
4.2.2 初始化集群元数据
4.2.3 部署BookKeeper集群
4.2.4 部署Pulsar Broker
4.3 调试Pulsar
4.3.1 调试Pulsar Broker源码
4.3.2 调试BookKeeper
4.4 本章总结
第5章 Pulsar的应用
5.1 租户
5.2 命名空间
5.2.1 消息保留和过期
5.2.2 持久化策略
5.2.3 消息投递速率
5.3 主题
5.3.1 创建主题
5.3.2 发送、消费消息
5.3.3 管理主题
5.4 客户端
5.4.1 生产者
5.4.2 消费者
5.5 Schema
5.5.1 Schema的类型与使用示例
5.5.2 Schema演化与兼容
5.5.3 管理Schema
5.6 资源隔离
5.6.1 Broker隔离
5.6.2 Bookie隔离
5.7 兼容Kafka客户端
5.8 BookKeeper使用示例
5.9 本章总结
第2部分 客户端与Broker计算层
第6章 Kafka和Pulsar的架构
6.1 ZooKeeper的作用
6.2 Kafka的架构设计
6.2.1 元数据管理
6.2.2 发布/订阅模式
6.2.3 磁盘存储的设计与优化
6.2.4 数据副本
6.2.5 系统伸缩
6.2.6 故障转移
6.3 Pulsar的架构设计
6.3.1 Pulsar的计算层
6.3.2 Pulsar的存储层
6.3.3 系统伸缩
6.3.4 故障转移
6.4 源码架构
6.4.1 Kafka
6.4.2 Pulsar
6.4.3 BookKeeper
6.5 本章总结
……
内容摘要
本章简单介绍Kaka与Pulsar的起源发展、系统特性,以及部分基础概念,为本书后面的内容做铺垫。1.1简介Apache Kafka(简称Kafka)是由LinkedIn公司开发的分布式消息流平台,于2011年开源。Kafka 是使用Scala 和Java编写的,当下已成为最流行的分布式消息流平台之一。Kafka基于发布/订阅模式,具有高吞吐、可持久化、可水平扩展、支持流数据处理等特性。Apache Pulsar(简称Pulsar)是雅虎开发的“下一代云原生分布式消息流平台”,于2016年开源,目前也在快速发展中。Pulsar集消息、存储、轻量化函数式计算为一体,采用计算与存储分离架构设计,支持多租户、持久化存储、多机房跨区域数据复制,具有强一致性、高吞吐、低延时及高可扩展性等流数据存储特性。1.2特性Kafka与Pulsar 都是优秀的分布式消息流平台,它们都提供了以下基础功能:(1)消息系统:Kafka与 Pulsar 都可以实现基于发布/订阅模式的消息系统,消息系统可以实现由消息驱动的程序——生产者负责产生并发送消息到消息系统,消息系统将消息投递给消费者,消费者收到消息后,执行自己的逻辑。
这种消息驱动机制具有以下优点:·系统解耦:生产者与消费者逻辑解耦,互不干预。如果需要对消息添加新的处理逻辑,则只需要添加新的消费者即可,非常方便。·流量削峰:消息系统作为消息缓冲区,以低成本将上游服务(生产者)的流量洪峰缓存起来,下游服务(消费者)按照自身处理能力从消息队列中读取数据并进行处理,避免下游服务由于大量的请求流量而崩溃。数据冗余:消息系统将数据缓存起来,直到数据被处理,避免下游服务由于崩溃下线、网络阻塞等原因无法及时处理数据而导致数据丢失。(2)存储系统:Kafka与Pulsar可以存储大量数据,并且客户端控制自己读取数据的位置,所以它们也可以作为存储系统,存储大量历史数据。(3)实时流数据管道:Kafka与Pulsar 可以构建实时流数据管道,流数据管道从MySQL、MongoDB等数据源加载数据到Kafka与Pulsar中,其他系统或应用就可以稳定地从Kafka与Pulsar中获取数据,而不需要再与MySQL等数据源对接。为此,Kafka 提供了Kafka Connect模块,Pulsar提供了Pulsar IO模块,它们都可以构建实时流数据管道。(4)流计算应用:流计算应用不断地从Kafka与Pulsar中获取流数据,并对数据进行处理,最后将处理结果输出到Kafka与Pulsar中(或其他系统)。流计算应用通常需要根据业务需求对流数据进行复杂的数据变换,如流数据聚合或者join等。为此,Kafka提供了Kafka Streams模块,Pulsar提供了Pulsar Functions模块,它们都可以实现流计算应用。另外,Kafka与Pulsar也可以与流行的Spark、Flink等分布式计算引擎结合,构建实时流应用,实时处理大规模数据。Kafka与Pulsar都具有(或追求)以下特性:(1)高吞吐、低延迟:它们都具有高吞吐量处理大规模消息流的能力,并且能够低延迟处理消息。这也是大多数消息流平台追求的目标。(2)持久化、一致性:Kafka与Pulsar都支持将消息持久化存储,并提供数据备份(副本)功能,保证数据安全及数据一致性,它们都是优秀的分布式存储系统。(3)高可扩展性(伸缩性):Kafka与Pulsar都是分布式系统,会将数据分片存储在一组机器组成的集群中,并支持对集群进行扩容,从而支持大规模的数据。(4)故障转移(容错):Kafka与Pulsar支持故障转移,即集群中某个节点因故障下线后,并不会影响集群的正常运行,这也是优秀的分布式系统的必备功能。Kafka 与Pulsar 虽然提供的基础功能类似,但它们的设计、架构、实现并不相同,本书将深入分析Kafka与Pulsar如何实现一个分布式、高扩展、高吞吐、低延迟的消息流平台。另外,本书也会介绍Kafka与Pulsar中连接器、流计算引擎等功能的应用实践。
主编推荐
"示例丰富:通过大量示例介绍Kafka与Pulsar的使用方式,这些内容可以帮助读者快速掌握Kafka与Pulsar的使用方式,并完成日常管理工作。 剖析原理:深入分析Kafka与Pulsar的实现原理,这部分内容可以帮助读者轻松理解Kafka与Pulsar的架构设计与实现原理。 拓展知识:介绍Kafka与Pulsar的事务机制,并深入分析Kafka事务的实现及Kafka近期新的分布式协作组件KRaft模块,这部分内容可以帮助读者深入理解分布式系统的难点,以及常用的解决方案。"
精彩内容
本书详细介绍了Kafka与Pulsar的使用方式,并深入分析了它们的实现机制。通过阅读本书,读者可以快速入门使用Kafka与Pulsar,并深入理解它们的实现原理。 本书通过大量实践示例介绍了Kafka与Pulsar的使用方式,包括管理脚本与客户端(生产者、消费者)的使用方式、关键的配置项、ACK提交方式等基础应用,以及安全机制、跨地域复制机制、连接器/流计算引擎、常用监控管理平台等高级应用。这些内容可以帮助读者深入掌握Kafka与Pulsar的使用方式,并完成日常管理工作。另外,本书深入分析了Kafka与Pulsar的实现原理,包括客户端(生产者、消费者)的设计与实现、Broker网络模型、主题(分区)分配与负载均衡机制,以及磁盘存储与性能优化方案、数据同步机制、扩容与故障转移机制。最后,本书介绍了Kafka与Pulsar的事务机制,并深入分析了Kafka事务的实现及Kafka近期新的分布式协作组件KRaft模块。这部分内容可以帮助读者轻松理解Kafka与Pulsar的架构设计与实现原理。
— 没有更多了 —
以下为对购买帮助不大的评价