![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kafka
诛仙89
11111
展开
-
Kafka索引
每个日志文件都有2个索引文件。偏移量索引和时间戳索引一、偏移量索引这个索引的特点是:他是稀疏索引,他是综合了存储和性能的折中考虑。该索引有2个字段,一个是偏移量,一个是改偏移量对应的物理地址。下面用一个例子来模拟根据offset查找message的过程。这个是各个日志分段的图(也就是.log文件)这个是0000.log日志分段和000.index的图首先定位日志段是哪一个,这个确定有个高明的地方,才用的跳表来进行的。...原创 2021-03-11 10:24:11 · 300 阅读 · 0 评论 -
Kafka消息积压问题
一、是否存在数据倾斜问题如果生产者指定了key,可以考虑是否存在数据倾斜,调整key的生成策略可以解决,如果没指定key,则默认情况下是不会产生数据倾斜的二、kafka分区不合理海量数据下,分区过少,则会造成下游的消费者并行消费的能力降低,而且数据的容灾也不靠谱三、消费者批量处理每次拉取消息的时候,可以选择批量处理...原创 2021-02-03 22:51:18 · 713 阅读 · 0 评论 -
Kafka消息的丢失和重复消费
精彩博客一、生产者消息丢失如果配置ack=-1,那么要求leader和ISR中的副本都有ack那么才会确保发送成功,在网络抖动或者网络故障的情况下,生产者和消息队列服务器无法通信了,生产者就会认为这个消息丢失了,通常情况下会采用消息重新发送的机制。这个也会造成消息重复。KafkaProducer 一般会发生两种类型的异常 可重试的异常和不可重试的异常 。常见的可重试异常有NetworkExceptionLeaderNotAvailableExceptionUnknownTopicOrPartit原创 2021-02-03 17:25:35 · 552 阅读 · 0 评论 -
Kafka消费者
一、消费者组和消费者消费者的概念很好理解,消费者组到底是做什么的呢?很多消息中间件都会有一对一和一对多,kafka利用消费者组巧妙的实现了。一个消费者只属于一个消费者组同一个topic,不同的消费者组的消费互不影响一个消费者组里面的消费者共同瓜分topic里面的消息,这里可以自定义瓜分的策略,这些策略大部分是和分区有关...原创 2020-07-16 22:07:20 · 113 阅读 · 0 评论 -
Kafka生产者
一、 重要参数1.1 serializer为什么需要这serializer? 因为broker 端接收的消息必须以字节数组(byte [] )的形式存在。常见值:org apache kafka.common.serialization.StringSerializer1.2 client.id这个参数都说建议显示指定,但也都没说为什么么这个参数用来设定 KafkaProducer 应的客户端 id 默认值为“” 如果客户端不设置, KafkaProducer自动生成一个非空字符串,内容形原创 2020-06-16 10:16:07 · 153 阅读 · 0 评论 -
Kafka重要参数汇总
一、zookeeper.connectlocalhost1 :2181,localhost1:2181,lcalhost2: 2181最好加一个chroot路径,比如localhost1 :2181,localhost1:2181,lcalhost2: 2181/kafka-cluster-name这样多个kafka集群可以共用一个zookeeper集群如果没有配置chroot,默认就是zookeeper的根路径二、 broker.idbroker在kafka集群的唯一Id,这个很重要,t原创 2020-06-16 09:32:19 · 537 阅读 · 0 评论 -
【Python实现】Kafka批量导入导出
Kafka Connect非常强大,但是也有局限性,不能个性化的定制,如果需要参考我的另外一个博客博客地址Python实现起来其实也很简单,就是利用消费者导出,生产者导入。而且我效率也很不错代码介绍下面是一个从某个topic读数据,然后写到另外一个topic的完整代码#!/usr/bin/env python# -*- coding: utf-8 -*-import jsonimport sysimport timefrom kafka import KafkaConsumer, To原创 2020-06-14 17:45:28 · 1261 阅读 · 0 评论 -
【Kafka Connect】Kafka批量导出和导入
一、Kafka ConnectKafka Connect是在0.9以后加入的功能,主要是用来将其他系统的数据导入到Kafka,然后再将Kafka中的数据导出到另外的系统。主要由2中运行模式本文是基于kafka 0.10.21.1 Standalone 单机模式单机模式就是只用一个进程去处理数据,但是一个进程可以配置多个works命令的使用模式bin/connect-standalone.sh config/connect-standalone.properties connector1.p原创 2020-06-14 17:37:19 · 1447 阅读 · 0 评论 -
Kafka在zookeeper中的存储情况
目录机构通过zkCli.sh ls命令查看[cluster, controller_epoch, controller, storm, brokers, zookeeper, admin, isr_change_notification, consumers, log_dir_event_notification, latest_producer_id_block, config]co...原创 2019-07-21 22:35:03 · 314 阅读 · 0 评论 -
Kafka partition和replication
这里集群broker:s1 s 2 s3topic:test6partition:3replication:2分区分区的概念很好理解,就是数据的水平切分,比如上面的配置中把一个主题的数据分成3分进行存储,而且不同分区一般都是在不同的broker中。这个就是kafka的高扩展性。比如上面s1、s2、s3各有一个分区。副本副本的概念就是kafka的高可用性,比如s1节点宕机了,那么...原创 2019-07-23 22:03:37 · 1203 阅读 · 0 评论 -
Kafka入门
我之前用过activemq,这新公司大量使用kafka,所以我也开始学习kafka安装点击这里,我在学习storm的时候,也需要安装kafka,所以这里就省略安装了。核心概念zookeeper:类似spring cloud的eureka,zookeeper也是很多第三方工具常用的集成部分。broker:这个就是一个kafka节点producer:生产者consumer group:...原创 2019-07-18 20:32:11 · 124 阅读 · 0 评论