没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
40页
Apache Kafka 是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统, 使用 Scala 与 Java 语言编写,能够将消息从一个端点传递到另一个端点,较之传统的消息中 间件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容 错的特性,非常适合大规模消息处理应用程序。 Kafka 官网: http://kafka.apache.org Apache Kafka 是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统, 使用 Scala 与 Java 语言编写,能够将消息从一个端点传递到另一个端点,较之传统的消息中 间件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容 错的特性,非常适合大规模消息处理应用程序。 Kafka 官网: http://kafka.apache.org Apache Kafka 是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统, 使用 Scala 与 Java 语言编写,能够将消息从一个端点传递到另一个
资源推荐
资源详情
资源评论
分布式消息系统
Kafka
课程讲义
主讲:
Reythor
雷
2020
分布式消息系统 Kafka
主讲:Reythor 雷
1
分布式消息系统
Kafka
第
1
章
Kafka
概述
kafaka
简介
1.1
Apache Kafka 是一个快速、可扩展的、高吞吐的、可容错的分布式“发布-订阅”消息系统,
使用 Scala 与 Java 语言编写,能够将消息从一个端点传递到另一个端点,较之传统的消息中
间件(例如 ActiveMQ、RabbitMQ),Kafka 具有高吞吐量、内置分区、支持消息副本和高容
错的特性,非常适合大规模消息处理应用程序。
Kafka 官网: http://kafka.apache.org/
Kafa
系统架构
1.2
应用场景
1.3
Kafka 的应用场景很多,这里就举几个最常见的场景。
消息系统 Messaging
Web 站点活动追踪 Website Activity Tracking
数据监控 Metrics
日志聚合 Log Aggregation
流处理 Stream Processiong
分布式消息系统 Kafka
主讲:Reythor 雷
2
事件源 Event Sourcing
提交日志 Commit Log
kafka
高吞吐率实现
1.4
Kafka 与其它 MQ 相比,其最大的特点就是高吞吐率。为了增加存储能力,Kafka 将所有
的消息都写入到了低速大容的硬盘。按理说,这将导致性能损失,但实际上,kafka 仍可保
持超高的吞吐率,性能并未受到影响。其主要采用了如下的方式实现了高吞吐率。
顺序读写:Kafka 将消息写入到了分区 partition 中,而分区中消息是顺序读写的。顺序
读写要远快于随机读写。
零拷贝:生产者、消费者对于 kafka 中消息的操作是采用零拷贝实现的。
批量发送:Kafka 允许使用批量消息发送模式。
消息压缩:Kafka 支持对消息集合进行压缩。
分布式消息系统 Kafka
主讲:Reythor 雷
3
第
2
章
Kafka
工作原理与工作过程
Kafka
基本术语
2.1
对于 Kafka 基本原理的介绍,可以通过对以下基本术语的介绍进行。
2.1.1 Topic
主题。在 Kafka 中,使用一个类别属性来划分消息的所属类,划分消息的这个类称为 topic。
topic 相当于消息的分类标签,是一个逻辑概念。
2.1.2 Partition
分区。topic 中的消息被分割为一个或多个 partition,其是一个物理概念,对应到系统上
就是一个或若干个目录。
2.1.3 segment
段。将 partition 进一步细分为了若干的 segment,每个 segment 文件的最大大小相等。
2.1.4 Broker
Kafka 集群包含一个或多个服务器,每个服务器节点称为一个 broker。
一个 topic 中设置 partition 的数量是 broker 数量的整数倍。
2.1.5 Producer
生产者。即消息的发布者,其会将某 topic 的消息发布到相应的 partition 中。
2.1.6 Consumer Group
消费者。可以从 broker 中读取消息,其是以 consumer group 的形式出现的。
consumer group 是 kafka 提供的可扩展且具有容错性的消费者机制。组内可以有多个消
费者,它们共享一个公共的 ID,即 group ID。组内的所有消费者会协调在一起平均消费订阅
主题的所有分区。
Kafka 可以保证在稳定状态下,一个 partition 中的消息只能被同一个 consumer group 中
的一个 consumer 消费,而一个组内 consumer 只会消费某一个或几个特定的 partition。当然,
一个消息可以同时被多个 consumer group 消费。
分布式消息系统 Kafka
主讲:Reythor 雷
4
组中 consumer 数量与 partition 数量的对应关系如下。
组内 consumer 与 partition 有数量关系是 1:n,partition 与组内 consumer 有关系是:1:1。
一旦 consumer 与 partition 的消费关系确立就不会发生变化,直到这个 consumer 挂了。
这样设计的优点:实现简单、控制简单。
不足:consumer 对于消息的消费不均衡,注意,不是对 partition 分配的不均衡。
剩余39页未读,继续阅读
资源评论
Java码库
- 粉丝: 1423
- 资源: 3918
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功