kafka
文章平均质量分 57
莫叫石榴姐
云淡风轻一轮江月明
展开
-
如何理解Kafka的消费者组?
理解消费者组之前,我们还是要抛出一个问题,Kafka是如何提高自己的扩展性和并行度的?实际上kafka为了具备可扩展性,设计了partiton的概念,但光有了partition还是不行,消费端如何去并行处理呢?为了在消费端能够并行处理partition kafka设计了消费者组。传统的消息队列模型的缺陷在于消息一旦被消费,就会从队列中被删除,而且只能被下游的一个Consumer 消费。严格来说,这一点不算是缺陷,只能算是它的一个特性。但很显然,这种模型的伸缩性(scalability)很差,因为下游原创 2021-09-05 17:20:42 · 444 阅读 · 0 评论 -
kafka是如何通过offset定位一条消息的?
Kafka文件结构 Kafka 中消息是以 topic 进行分类的,生产者生产消息,消费者消费消息,都是面向 topic的。topic 是逻辑上的概念,而 partition 是物理上的概念,每个 partition 对应于一个 log 文件,该 log 文件中存储的就是 producer 生产的数据。Producer 生产的数据会被不断追加到该log 文件末端,且每条数据都有自己的 offset(偏移量)。消费者组中的每个消费者,都会实时记录自己消费到了哪个 offset,以便出错恢复时...原创 2021-09-05 14:58:52 · 2122 阅读 · 0 评论 -
kafka无丢失消息配置实现
发送端 不要使用 producer.send(msg),而要使用 producer.send(msg, callback)。记住,一定要使用带有回调通知的 send 方法。 设置 acks = all。acks 是 Producer 的一个参数,代表了你对“已提交”消息的定义。如果设置成 all,则表明所有副本 Broker 都要接收到消息,该消息才算是“已提交”。这是最高等级的“已提交”定义。 设置 retries 为一个较大的值。这里的 retries 同样...原创 2021-09-03 15:16:24 · 158 阅读 · 0 评论 -
学废Kakfa数据分配策略,那么你学废了吗?
kafka为什么要分区 kafka本质上是一个消息数据库,最开始kafka是因为消息队列起家的,但已发展到今天,kafka实质上已经成为一个消息数据库或消息引擎。为什么这么说呢?因为就是kafka的分区机制。kafka为什么要做分区?从kafka的数据存储结构来看,kafka是 Topic->Partition->Message的。主题下的每条消息只会保存在某一个分区中,而不会在多个分区中被保存多份。官网上的这张图非常清晰地展示了 Kafka 的三级结构,如下所示: 实际上...原创 2021-09-03 14:41:11 · 184 阅读 · 1 评论 -
Kafka一天一个小问题:Kafka为什么查询速度快
Kafka为什么查询速度快分段Kafka解决查询效率的手段之一是将数据文件分片,数据文件以该段中最小的offset命名。这样在查找指定offset的Message的时候,用二分查找就可以定位到该Message在哪个段(segment)中。稀疏索引为了进一步提高查找的效率,Kafka为每个分段后的数据文件建立了索引文件,文件名与数据文件的名字是一样的,只是文件扩展名为.index。索引包含两个部分(均为4个字节的数字),分别为相对offset和position。index文件中并没有为原创 2021-08-31 13:03:04 · 294 阅读 · 0 评论 -
kafka一天一个小问题:Kafka和SparkStreaing如何集成?
package com.wedoctor.spark.dstreamimport java.sql.{Connection, PreparedStatement}import com.wedoctor.spark.utils.{DruidConnectionPool, OffsetUtils}import org.apache.kafka.clients.consumer.ConsumerRecordimport org.apache.kafka.common.TopicPartitio..原创 2021-08-31 12:56:46 · 162 阅读 · 0 评论 -
kafka获取分区编号的工具类
import org.apache.kafka.clients.producer.Partitioner;import org.apache.kafka.common.Cluster;import java.util.Map;/***@Author 小哥哥*@Company 爱吹牛逼的好程序员*@Date kafka分区工具类*@Description**/public class KafkaPartitionKeyUtil implements Partitioner { p.原创 2021-04-05 21:48:51 · 333 阅读 · 0 评论 -
kafkaUtils工具类封装
import java.util.Properties;import java.util.concurrent.Future;import org.apache.kafka.clients.producer.KafkaProducer;import org.apache.kafka.clients.producer.Producer;import org.apache.kafka.clients.producer.ProducerRecord;import org.apache.kafka..原创 2021-03-09 20:40:05 · 2946 阅读 · 0 评论