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