摘要:Kafka可靠性分析 多副本。 就Kafka而言,越多的副本数越能够保证数据的可靠性,副本数可以在创建主题时配置,也可以在后期修改,不过副本数越多也会引起磁盘、网络带宽的浪费,同时会引起性能的下降。一般而言,设置副本数为3即可满足绝大多数场景对可靠性的要求。部分业务比如银行对可靠性要求比较高,会副本
阅读全文
摘要:在kafka中,生产者写入消息,消费者读取消息的操作都是与 leader 副本进行交互的,从而实现的是一种主写主读的生产消费模型。kafka不支持读写分离,也就是主写从读。 读写分离有以下不足: (1) 主从延时。类似 Redis ,数据从写入主节点,再同步到从节点中的过程需要耗费一些时间。如果对延
阅读全文
摘要:副本 副本(Replica),指的是分布式系统对数据和服务提供的一种冗余方式。 Kafka通过多副本机制实现故障自动转移,在Kafka集群中某个broker节点失效的情况下仍然保证服务可用。 失效副本 在ISR集合之外,也就是处于同步失效或功能失效(比如副本处于非存活状态)的副本统称为失效副本,失效
阅读全文
摘要:kafka分区分配策略 参数: Kafka提供了消费者客户端参数partition.assignment.strategy来设置消费者与订阅主题之间的分区分配策略。 默认情况下,此参数的值为 org.apache.kafka.clients.consumer.RangeAssignor,即采用Ran
阅读全文
摘要:副本 副本(Replica),指的是分布式系统对数据和服务提供的一种冗余方式。 Kafka通过多副本机制实现故障自动转移,在Kafka集群中某个broker节点失效的情况下仍然保证服务可用。 kafka 副本之间是 一主多从的关系。 其中 leader 副本负责处理读写请求,follower 副本只
阅读全文
摘要:kafka 高吞吐量 顺序写入磁盘 Kafka 使用 磁盘来存储和缓存消息。 Kafka 只能在日志文件的尾部追加新的消息,也就是 顺序写入磁盘。 顺序写入磁盘,让 Kafka 能实现更高的吞吐量。 页缓存 Kafka中大量使用页缓存,这是Kafka 实现高吞吐的重要因素之一。 页缓存,是操作系统实
阅读全文
摘要:日志分段(LogSegment) Kafka的一个 主题可以分为多个分区。 一个分区可以有一至多个副本,每个副本对应一个日志文件。 每个日志文件对应一个至多个日志分段(LogSegment)。 每个日志分段还可以细分为索引文件、日志存储文件和快照文件。 每个 LogSegment 对应于磁盘上的一个
阅读全文
摘要:构建消息 构建消息,即创建 ProduceRecord 对象。 (1) kafka发送消息,最常见的构造方法是: public ProducerRecord(String topic,V value) topic 表示主题, value 表示值。 (2) kafka发送消息指定key,Produce
阅读全文
摘要:起因: 某天,项目组收到大量的kafka消息积压告警。查看了kafka日志后,发现 kafka不断地 rebalance(再均衡)。 Rebalance (再均衡): 分区的所有权从一个消费者转移到另一个消费者,这样的行为被称为Rebalance (再均衡). 在再均衡期间,消费者无法消费消息,造成
阅读全文
摘要:消费者 (Consumer ) 消费者 订阅 Kafka 中的主题 (Topic) ,并 拉取消息, 消费消息,提交位移(offset)。 消费者 订阅 Topic > 拉取消息 > 消费消息 > 提交位移 消费者群组( Consumer Group) 每一个消费者都有一个对应的 消费者群组。 一个
阅读全文
摘要:kafka消费积压 如果生产者发送消息的速度过快,或者是消费者处理消息的速度太慢,那么就会有越来越多的消息无法及时消费,也就是消费积压。 消费积压时, (1) 可以增加Topic的分区数,并且增加消费组的消费者数量,让消费者数等于分区数。 (2) 还可以使用多线程消费,提高消费速度。 kafka多线
阅读全文
摘要:位移提交: Kafka的每条消息都有唯一的 offset, 用来表示消息在分区中对应的位置。有的也称之为 "偏移量"。 消费者每次在 poll() 拉取消息,它要返回的是还没有消费过的消息集, 因此,需要记录上一次消费时的消费位移,并且持久化。 消费者在消费完消息之后,需要执行消费位移的提交。 自动
阅读全文
摘要:kafka的基础概念 Producer (消息生产者) 向主题发布消息的客户端应用程序称为生产者(Producer),生产者用于持续不断的向某个主题发送消息。 Consumer (消息消费者) 订阅主题消息的客户端程序称为消费者(Consumer),消费者用于处理生产者产生的消息。 Consumer
阅读全文
摘要:一、kafka启动报错: java.nio.file.FileSystemException: D:\kafka_2.12-2.1.0\kafka_2.12-2.1.0\logs\__consumer_offsets-30\00000000000000000000.timeindex.cleaned
阅读全文
摘要:安装kafka: Windows安装kafka, 详情见:https://blog.csdn.net/sinat_32502451/article/details/133067851 Linux 安装kafka,详情见:https://blog.csdn.net/sinat_32502451/art
阅读全文
摘要:安装kafka: Windows安装kafka, 详情见:https://blog.csdn.net/sinat_32502451/article/details/133067851 Linux 安装kafka,详情见:https://blog.csdn.net/sinat_32502451/art
阅读全文
摘要:Kafka 面试题 Q:讲一下Kafka。 Kafka 入门一篇文章就够了 Kafka的简单理解 Q:消息队列,有哪些使用场景及用途? 解耦,削峰,限流。 Q:Kafka相对其他消息队列,有什么特点? 持久化:Kafka的持久化能力比较好,通过磁盘持久化。而RabbitMQ是通过内存持久化的。 吞吐
阅读全文
摘要:《Kafka权威指南》第一、三、四、六章,是重点。可以多看看。 一、 Kafka的组成 kafka是一个发布与订阅消息系统 消息:kafka的数据单元称为"消息"。可以把消息看成是数据库中的一个"数据行"。 消息的key:为key生成一个一致性散列值(HashCode),然后使用散列值对主题分区数进
阅读全文