kafka
文章平均质量分 87
一只牛_007
这个作者很懒,什么都没留下…
展开
-
kafka配置参数详解
Broker ConfigsProperty Default Description broker.id 每个broker都可以用一个唯一的非负整数id进行标识;这个id可以作为broker的“名字”,并且它的存在使得broker无须混淆consumers就可以迁移到不同的host/port上。你可以选择任意你喜欢的数字作为id,只要id是唯一的即可。 log.dirs /tmp/kafka-logs kafka存放数据的路径。这个路径并不是唯一的,可以..原创 2021-03-13 15:11:59 · 561 阅读 · 0 评论 -
Kafka生产者ack和lag机制剖析
Kafka有两个很重要的配置参数,acks与min.insync.replicas。其中acks是producer的配置参数,min.insync.replicas是Broker端的配置参数,这两个参数对于生产者不丢失数据起到了很大的作用。接下来,本文会以图示的方式讲解这两个参数的含义和使用方式。通过本文,你可以了解到:Kafka的分区副本 什么是同步副本(In-sync replicas) 什么是acks确认机制 什么是最小同步副本 ack=all与最小同步副本是如何发挥作用的分区副本原创 2021-03-13 11:58:42 · 1343 阅读 · 1 评论 -
kafka开放公网端口被攻击
[2021-03-03 16:02:35,734] WARN [SocketServer brokerId=2] Unexpected error from /101.133.140.205; closing connection (org.apache.kafka.common.network.Selector)org.apache.kafka.common.network.InvalidReceiveException: Invalid receive (size = 1447383635 large原创 2021-03-04 08:45:36 · 3696 阅读 · 8 评论 -
kafka 出现Java heap space的解决方法
问题:测试环境异常,经过查看server.log日志,发现:java.lang.OutOfMemoryError: Java heap space,具体如下:server.log:[2021-03-03 09:25:17,744] ERROR [ReplicaManager broker=1] Error processing append operation on partition ss-liantong-20210303-2 (kafka.server.ReplicaManager)jav原创 2021-03-03 16:24:16 · 6348 阅读 · 1 评论 -
kafka如何彻底删除topic及数据
前言:删除kafka topic及其数据,严格来说并不是很难的操作。但是,往往给kafka 使用者带来诸多问题。项目组之前接触过多个开发者,发现都会偶然出现无法彻底删除kafka的情况。本文总结多个删除kafka topic的应用场景,总结一套删除kafka topic的标准操作方法。step1:如果需要被删除topic 此时正在被程序 produce和consume,则这些生产和消费程序需要停止。因为如果有程序正在生产或者消费该topic,则该topic的offset信息一致会在broke原创 2021-02-17 20:01:51 · 486 阅读 · 0 评论 -
续说零拷贝(Zero-Copy) - DMA技术
如果想理解Kafaka为什么这么快,得先看DMA是什么.DMA: 无论 I/O 速度如何提升,比起 CPU,总还是太慢。SSD 硬盘的 IOPS 可以到 2 万、4 万,但是我们 CPU 的主频有 2GHz 以上,也就意味着每秒会有 20 亿次的操作.如果我们对于 I/O 的操作,都是由 CPU 发出对应的指令,然后等待 I/O 设备完成操作之后返回,那 CPU 有大量的时间其实都是在等待 I/O 设备完成操作。但是,这个 CPU 的等待,在很多时候,其实并没有太多的实际意义。我们...原创 2021-02-14 16:56:26 · 564 阅读 · 0 评论 -
Kafka顺序读写与零拷贝(kafka为什么这么快)
链接:https://zhuanlan.zhihu.com/p/78335525用kafka做存储层,为什么呢?一大堆可以做数据存储的 MySQL、MongoDB、HDFS……因为kafka数据是持久化磁盘的,还速度快;还可靠、支持分布式……啥!用了磁盘,还速度快!!!没错,kafka就是速度无敌,本文将探究kafka无敌性能背后的秘密。首先要有个概念,kafka高性能的背后,是多方面协同后、最终的结果,kafka从宏观架构、分布式partition存储、ISR数据同步、以及“无孔不入”原创 2021-02-14 16:51:49 · 3181 阅读 · 0 评论 -
kafka架构、亿级数据如何优化GC
大家都知道Kafka是一个高吞吐的消息队列,是大数据场景首选的消息队列,这种场景就意味着发送单位时间消息的量会特别的大,那既然如此巨大的数据量,kafka是如何支撑起如此庞大的数据量的分发的呢?今天我们从kafka架构以如何优化GC两个方面讲解.kafka架构既然要说kafka是如何通过内存缓冲池设计来优化JVM的GC问题,那么,如果不清楚kafka 的架构设计,又怎么更好的调优呢?起码的我们要知道基础的才能往更好的出发呀,对吧?先来看一些技术名词: Topic:用于划分Message的逻辑概原创 2021-02-14 16:05:56 · 412 阅读 · 0 评论 -
kafka压力测试说明
1 整体环境说明1.1 硬件环境1、 磁盘:SATA磁盘2块,磁盘阵列为RAID12、 CPU****:2个4核CPU。具体参数:Intel(R) Xeon(R) CPU E5405 @ 2.00GHz3、 内存:8G(8*1G)4、 网卡:1000Mb/s1.2 软件环境1、 kafka版本:kafka_2.11-2.11.0.02、 kafka集群数量:33、 zookeeper版本:zookeeper-3.4.124、 zookeeper集群数量:35、 z原创 2021-02-14 14:50:56 · 1945 阅读 · 0 评论 -
kafka 运行一段时间报错Too many open files
kafka运行一段时间报错:出现这种错误的解决方法:1.修改操作系统中的环境变量修改“/etc/security/limits.conf”vim /etc/security/limits.conf末尾添加:* - nofile 1000000* - nproc 10000002.启用"/etc/security/limits.conf"功能,默认是被注释的,即默认未启用,也有可能原创 2020-10-30 17:13:41 · 1064 阅读 · 0 评论 -
go 使用sarama写入kafka数据时间戳问题
查看消息时间戳的命令:kafka-console-consumer --bootstrap-server localhost:9092 --property print.timestamp=true --topic test --from-beginning发现sarama生产者推送到kafka的CreateTime均为-1。而命令行推送到kafka的时间戳正常。原因:sarama默认支持的是0.8.2的kafka版本,而timestamp的支持是从0.10版本开始的。因此需要初始化生产者配置...原创 2020-10-23 21:26:53 · 595 阅读 · 0 评论 -
工作中常用的kafka命令
Kafka常用命令以下是kafka常用命令行总结: 1.查看topic的详细信息 /data/bin/kafka/bin//kafka-topics.sh --zookeeper 172.16.2.179:2181,172.16.1.40:2181,172.16.1.48:2181 --describe --topic test2020 /data/bin/kafka/bin/kafka-topics.sh --zookeeper 172.16.2.179:2181,172.16.1.40:2...原创 2020-10-23 21:03:27 · 630 阅读 · 0 评论 -
kafka集群管理工具kafka-manager
一、kafka-manager简介kafka-manager是目前最受欢迎的kafka集群管理工具,最早由雅虎开源,用户可以在Web界面执行一些简单的集群管理操作。具体支持以下内容:管理多个集群 轻松检查群集状态(主题,消费者,偏移,代理,副本分发,分区分发) 运行首选副本选举 使用选项生成分区分配以选择要使用的代理 运行分区重新分配(基于生成的分配) 使用可选主题配置创建主题(0.8.1.1具有与0.8.2+不同的配置) 删除主题(仅支持0.8.2+并记住在代理配置中设置dele.原创 2020-10-23 13:05:46 · 11292 阅读 · 1 评论 -
kafka的key为null时如何存储
kafka producer发送消息的时候,可以指定key,这个key的作用是为消息选择存储分区,key可以为空,当指定key且不为空的时候,kafka是根据key的hash值与分区数取模来决定数据存储到那个分区,那么当key为null的时候,kafka又是如何存储的呢?可能很多人都会说随机选择一个分区进行存储,但是具体是怎么实现的呢?虽然可以这么说,但是还不够严谨,下面通过kafka的源码来解读下key=null是怎么存储的:从上面源码可以看出,当key=null时,kafka是先从缓存中取分区号原创 2020-10-23 10:34:31 · 1536 阅读 · 0 评论 -
Kafka调优
配置参数调优broker配置num.recovery.threads.per.data.dir对于如下 3 种情况,Kafka 会使用可配置的线程池来处理日志片段:服务器正常启动,用于打开每个分区的日志片段; 服务器崩溃后重启,用于检查和截短每个分区的日志片段; 服务器正常关闭,用于关闭日志片段。默认情况下,每个日志目录只使用一个线程。因为这些线程只是在服务器启动和关闭时会用到,所以完全可以设置大量的线程来达到并行操作的目的。特别是对于包含大量分区的服务器来说,一旦发生崩溃,在进行恢复原创 2020-10-20 14:57:25 · 704 阅读 · 1 评论 -
Kafka配置offsets.retention.minutes和log.retention.minutes的区别
前言在Kafka中,我们可能会发现两个与retention相关的配置:log.retention.minutes offsets.retention.minutes那么它们之前的差别是什么呢?定义首先让我们看看它们在官方文档中的定义名称 描述 类型 默认值 有效值 重要性 log.retention.minutes The number of minutes to keep a log file before deleting it (in m原创 2020-10-20 14:29:55 · 1147 阅读 · 0 评论 -
go应用程序写kafka阻塞(大坑)
由于是大数据,打日志相对麻烦,使用玄坤大法,选点打日志,才把这个bug纠出来。使用库:sarama原创 2020-09-30 11:47:28 · 1370 阅读 · 0 评论 -
kafka消费端慢慢延迟(网络带宽不足)
2020-09-29问题描述:线上业务出现推送延迟,启动测试工具订阅topic,能看到数据正常时间能对上(数据写进去了),用kafka自带的也能对上,通过分析后发现工具记录的日志在9点41分启动-9点50分之间出现了秒级延迟(最多延迟16秒)。通过阿里云监控发现有台kafka磁盘IO是38M,检查高效云盘磁盘IO吞吐量上限是140M/s,说明IO没问题。进一步发现网络流出带宽达到850M/s,和运维确认带宽上限是800M/s,确认是出口带宽引起读取延迟。1.运维规范:前段时间运维因成本原因对ka原创 2020-09-30 10:31:58 · 1661 阅读 · 0 评论 -
kafka 报错:kafka server:Message was too large ,server rejected it to avoid allocation
kafka报错信息:kafka server:Message was too large ,server rejected it to avoid allocationkafka版本:kafka_2.11-1.0.0原因分析:查看kafka配置,默认单条消息最大为1M,当单条消息长度超过1M时,就会出现发送到broker失败,从而导致消息在producer的队列中一直累积,直到撑爆生产者的内存。于是赶紧修改kafka配置,解决问题。主要修改步骤如下:1.修改kafka的broker...原创 2020-09-30 10:54:56 · 2458 阅读 · 1 评论 -
kafka时间戳
写入kafka的消息一定要加上时间戳,对问题排查非常有好处1.应用自己加时间戳,对排查数据延迟很有帮助2.kafka支持,需要修改配置,未试参考:https://blog.csdn.net/yjh314/article/details/78545543原创 2020-09-30 11:14:49 · 1155 阅读 · 2 评论 -
kafka报错打开文件数过多导致kafka关闭
监控到业务异常,kafka异常查看kafka日志,发现大量错误日志:ERROR Error while accepting connection (kafka.network.Acceptor) java.io.IOException: 打开的文件过多lsof -p kafka-pid 看有上万个文件句柄使用自写的删除topic工具,删除一部分历史topic后,重启kafka,问题解决。之后继续删除topic,文件句柄降到2000。1.运维规范:kafka历史topic定时清理,可配原创 2020-09-30 11:22:31 · 4270 阅读 · 0 评论 -
kafka 集群启动失败:FATAL [KafkaServer id=0] Fatal error during KafkaServer startup.
在测试 kafka 集群时,关闭 kafka 后,再次启动 kafka 集群时,遇到此问题,具体内容如下:FATAL [KafkaServer id=0] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)java.lang.RuntimeException: A broker is already registered on the path /brokers/ids/0关于原创 2020-09-30 11:36:01 · 1319 阅读 · 0 评论 -
kafka版本 不对问题
这个问题是同事遇到的:错误信息:ERROR Error when sending message to topic test with key: null, value: 5 bytes with error: (org.apache.kafka.clients.producer.internals.ErrorLoggingCallback)org.apache.kafka.common.errors.TimeoutException: Batch containing 1 record(s) ex原创 2020-09-30 11:38:03 · 740 阅读 · 0 评论