
深入理解Kafka
文章平均质量分 93
深入理解Kafka:核心设计与实践原理
一直不懂
笔记
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Kafka高级应用
除了正常的消息发送和消费, 在使用Kafka的过程中难免会遇到一些其他高级应用类的需求, 比如消费回溯, 这个可以通过原生Kafka提供的Kafka Consumer.seek() 方法来实现, 然而类似延时队列、消息轨迹等应用需求在原生Kafka中就没有提供了。我们在使用其他消息中间件时, 比如Rabbit MQ,使用到了延时队列、消息轨迹的功能, 如果我们将应用直接切换到Kafka中, 那么只能选择舍弃它们。但这也不是绝对的, 我们可以通过一定的手段来扩展Kafka, 本章讲述的就是如何实现这类扩展的高转载 2021-02-03 16:32:43 · 2419 阅读 · 0 评论 -
Kafka 监控
任何应用功能再强大、性能再优越,如果没有与之匹配的监控,那么一切都是虚无缥缈的。监控不仅可以为应用提供运行时的数据作为依据参考,还可以迅速定位问题,提供预防及告警等功能, 很大程度上增强了整体服务的鲁棒性。目前的Kafka监控产品有很多, 比如Kafka Manager、Kafka Eagle、Kafka Monitor、Kafka Offset Monitor、Kafka Web Console、Burrow等,它们都有各自的优缺点。以Kafka Manager为例, 它提供的监控功能也是相对比较完善的,转载 2021-01-31 22:17:18 · 1331 阅读 · 0 评论 -
Kafka 应用
1、命令行工具Kafka 中提供了许多命令行工具(位于$KAFKA_HOME/bin 目录下)用于管理集群的变更。脚本名称释义kafka-configs.sh用于配置管理,在4.1.5节和4.3.3节中有所提及kafka-console-consumer.sh用于消费消息,在1.3节和7.3节中有所提及kafka-console-producer.sh用于生产消息,在1.3节中有所提及kafka-consumer-perf-test.sh用于测试消费性能,在转载 2021-01-31 21:25:37 · 678 阅读 · 0 评论 -
Kafka可靠性探究
Kafka中采用了多副本的机制, 这是大多数分布式系统中惯用的手法, 以此来实现水平扩展、提供容灾能力、提升可用性和可靠性等。我们对此可以引申出一系列的疑问:Kafka多副本之间如何进行数据同步,尤其是在发生异常时候的处理机制又是什么?多副本间的数据一致性如何解决, 基于的一致性协议又是什么?如何确保Kafka的可靠性?Kafka中的可靠性和可用性之间的关系又如何?本章从副本的角度切入来深挖Kafka中的数据一致性、数据可靠性等问题, 主要包括副本剖析、日志同步机制和可靠性分析等内容。1、副本剖析副本转载 2020-06-19 13:41:52 · 1029 阅读 · 0 评论 -
深入Kafka客户端
1、分区分配策略Kafka提供了消费者客户端参数 partition.assignment.strategy来设置消费者与订阅主题之间的分区分配策略。默认情况下,此参数的值为org.apache.kafka.clients.consumer.RangeAssignor,即采用 RangeAssignor分配策略。除此之外,Kafka还提供了另外两种分配策略: RoundRobinAssigno...转载 2019-12-11 00:13:07 · 1559 阅读 · 0 评论 -
深入Kafka服务端
本章涉及协议设计、时间轮、延迟操作、控制器及参数解密,尤其是协议设计和控制器的介绍,这些是深入了解Kafka的必备知识点。1、协议设计在实际应用中, Kafka经常被用作高性能、可扩展的消息中间件。 Kafka自定义了一组基于TCP的二进制协议,只要遵守这组协议的格式,就可以向 Kafka发送消息,也可以从Kafka中拉取消息,或者做一些其他的事情,比如提交消费位移等。在目前的Kafk...转载 2019-11-17 22:15:31 · 527 阅读 · 0 评论 -
Kafka日志存储
1、文件目录布局Kafka中的消息是以主题为基本单位进行归类的,各个主题在逻辑上相互独立。每个主题又可以分为一个或多个分区,分区的数量可以在主题创建的时候指定,也可以在之后修改。每条消息在发送的时候会根据分区规则被追加到指定的分区中,分区中的每条消息都会被分配一个唯一的序列号,也就是通常所说的偏移量(offset)。如果分区规则设置得合理,那么所有的消息可以均匀地分布到不同的分区中,这样就...转载 2019-11-14 00:05:49 · 2243 阅读 · 0 评论 -
Kafka分区的管理
本节主要介绍与分区相关的知识和操作,包括优先副本的选举、分区重分配、复制限流、修改副本因子等内容。1、优先副本的选举分区使用多副本机制来提升可靠性,但只有 leader副本对外提供读写服务,而 follower副本只负责在内部进行消息的同步。如果一个分区的 leader副本不可用,那么就意味着整个分区变得不可用,此时就需要Kafka从剩余的 follower副本中挑选一个新的 leader...转载 2019-11-10 18:10:25 · 1356 阅读 · 0 评论 -
Kafka主题(Topic)的管理
主题的管理包括创建主题、 查看主题信息、修改主题和删除主题等操作。可以通过 Kafka 提供的 kafka-topics.sh 脚本来执行这些操作,这个脚本位于 $KAFKA_HOME/bin/目录下,其核 心代码仅 有一行,具体如下 :exec $(dirname $0)/kafka-run-class.sh kafka.admin.TopicCommand "$@"可以看到其实质上是...转载 2019-11-10 01:10:14 · 7280 阅读 · 0 评论 -
Kafka消费者
1、消费者与消费组消费者(Consumer)负责订阅Kafka中的主题(Topic),并且从订阅的主题上拉取消息。与其他一些消息中间件不同的是:在Kafka的消费理念中还有一层消费组(Consumer Group)的概念,每个消费者都有一个对应的消费组。当消息发布到主题后,只会被投递给订阅它的每个消费组中的一个消费者。每个消费者只能消费所分配到的分区中的消息。换言之,每一个分区只能被一个消费组...转载 2019-10-11 00:10:04 · 2871 阅读 · 0 评论 -
Kafka生产者
生产者就是负责向 Kafka发送消息的应用程序。在 Kafka的历史变迁中,一共有两个大版本的生产者客户端:第一个是于 Kafka开源之初使用Scaa语言编写的客户端,我们可以称之为旧生产者客户端(Old Producer)或 Scala版生产者客户端;第二个是从 Kafka 0.9.x版本开始推出的使用Java语言编写的客户端,我们可以称之为新生产者客户端(New Producer)或Java版...转载 2019-09-24 23:56:21 · 1867 阅读 · 0 评论 -
Kafka基本概念
一个典型的kafka集群包含若干Producer,若干个Broker(kafka支持水平扩展)、若干个Consumer Group,以及一个zookeeper集群。kafka通过zookeeper管理集群配置及服务协同。Producer使用push模式将消息发布到broker,consumer通过监听使用pull模式从broker订阅并消费消息。多个broker协同工作,producer和co...转载 2019-09-09 02:23:06 · 638 阅读 · 0 评论