kafka
文章平均质量分 77
健康平安的活着
再给我一次重生的机会,我将加倍珍惜,将java事业进行到底。
展开
-
kafka 消费者的消费策略以及再平衡1
2.consumer订阅的topic发生变化,比如订阅的topic采用的是正则表达式的形式,如test-*此时如果有一个新建了一个topic test-user,那么这个topic的所有分区也是会自动分配给当前的consumer的,此时就会发生再平衡;可以理解为分配的结果带有“粘性的”。3.consumer所订阅的topic发生了新增分区的行为,那么新增的分区就会分配给当前的consumer,此时就会触发再平衡。假设假如现在有 7 个分区, 3 个消费者,排序后的分区将会 是0,1,2,3,4,5,6;原创 2023-09-16 00:48:33 · 502 阅读 · 0 评论 -
kafka事务的详解
即处于同一个事务内的所有消息,不管最终需要落地到哪个 topic 的哪个 partition, 最终结果都是要么全部写成功,要么全部写失败(Atomic multi-partition writes);原创 2023-09-14 23:28:46 · 3559 阅读 · 0 评论 -
kafka常用查看主题,消费数据的排查命令[重要!!!]
1.命令如下:bin/kafka-topics.sh --list --zookeeper 10.239.192.1822.截图如下:1.使用的命令bin/kafka-consumer-groups.sh --bootstrap-server 10.239.192.182:9092 --list2.截图如下:1.使用命令 bin/kafka-consumer-groups.sh --bootstrap-server 10.239.192.182:9092 --describe --group cloudi原创 2022-11-04 14:14:47 · 6830 阅读 · 0 评论 -
kafka的数据保留清除策略(绝对值得一看)
Kafka 作为一个高吞吐的消息中间件和传统的消息中间件一个很大的不同点就在于它的日志实际上是以日志的方式默认保存在/kafka-logs文件夹中的。原创 2022-06-20 15:02:52 · 3350 阅读 · 0 评论 -
kafka生产者的发送消息的流程以及代码案例
一 kafka发送消息流程1.1 发送流程原理kafka在发送消息的过程中,主要涉及两个线程main 线程和 Sender 线程。在 main 线程 中创建了一个双端队列 RecordAccumulator。main 线程将消息发送给 RecordAccumulator。Sender 线程不断从 RecordAccumulator 中拉取消息发送到 Kafka Broker。 1.2 发送信息的时机生产者何时向broker中发送信息。触发什么机制开始发送呢?这里有两种机制1.原创 2022-04-06 20:00:53 · 5071 阅读 · 0 评论 -
kafka 集成整合外部插件(springboot,flume,flink,spark)
一 kafka集成springboot1.工程结构2.pom文件 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.1</version> <relativePath/> &.原创 2022-04-12 09:43:18 · 916 阅读 · 1 评论 -
kafka的kraft模式
一 Kafka-Kraft 架构 左图为 Kafka 现有架构,元数据在 zookeeper 中,运行时动态选举 controller,由 controller 进行 Kafka 集群管理。右图为 kraft 模式架构(实验性),不再依赖 zookeeper 集群, 而是用三台 controller 节点代替 zookeeper,元数据保存在 controller 中,由 controller 直接进 行 Kafka 集群管理这样做的好处有以下几个: ⚫ Kafk原创 2022-04-11 11:15:03 · 3577 阅读 · 0 评论 -
kafka 消费端重复消费和漏消费以及提高吞吐量
一 重复消费和漏消费1.1 重复消费重复消费:已经消费了数据,但是 offset 没提交。 1.2 漏消费二 解决重复消费和漏消费如果想完成Consumer端的精准一次性消费,那么需要Kafka消费端将消费过程和提交offset过程做原子绑定。此时我们需要将Kafka的offset保存到支持事务的自定义介质(比 如MySQL)。三 数据挤压怎么提高吞吐量1.如果是Kafka消费能力不足,消费者数量较少,则可以考虑增 加Topic的分区数,并且同时提升消费...原创 2022-04-11 11:12:13 · 3337 阅读 · 5 评论 -
kafka的offset存储位置以及offset的提交方式
一 offset的存储位置1.1 存储位置1.从0.9版本开始,consumer默认将offset保存在Kafka 一个内置的topic中,该topic为__consumer_offsets2.Kafka0.9版本之前,consumer默认将offset保存在Zookeeper中。__consumer_offsets 主题里面采用 key 和 value 的方式存储数据。key 是 group.id+topic+ 分区号,value 就是当前 offset 的值。每隔一段时间,.原创 2022-04-11 09:09:20 · 6316 阅读 · 0 评论 -
kafka 消费者的消费策略以及再平衡实操案例2
一 kafka的消费策略1、一个consumer group中有多个consumer组成,一个 topic有多个partition组成,现在的问题是,到底由哪个consumer来消费哪个partition的数据。 2、Kafka有四种主流的分区分配策略: Range、RoundRobin、Sticky、CooperativeSticky。 可以通过配置参数partition.assignment.strategy,修改分区的分配策略。默认策略是Range + CooperativeSticky原创 2022-04-11 08:33:11 · 4675 阅读 · 1 评论 -
kafka 消费者进行消费数据的各种场景的API(你值得一看)
一 kafka消费端的参数原创 2022-04-10 14:53:38 · 1906 阅读 · 0 评论 -
kafka 消费者的工作流程
一 kafka消费者1.1 kafka消费的方式consumer采用从broker中主动拉取数据。 Kafka采用这种方式。pull模式不足之处是,如 果Kafka没有数 据,消费者可能会陷入循环中,一直返回 空数据。不采用push(推)模式是因为:Kafka没有采用这种方式,因为由broker决定消息发送速率,很难适应所有消费者的 消费速率。例如推送的速度是50m/s,Consumer1、Consumer2就来不及处理消息。1.2Kafka 消费者总体工作流程1.3 消费者..原创 2022-04-10 12:18:56 · 2856 阅读 · 0 评论 -
kafka的文件清除策略
一 清除策略Kafka 中默认的日志保存时间为 7 天,可以通过调整如下参数修改保存时间。配置文件在kafka的config/server.properties文件中:log.retention.hours,最低优先级小时,默认 7 天。 log.retention.minutes,分钟。 log.retention.ms,最高优先级毫秒。 log.retention.check.interval.ms,负责设置检查周期,默认 5 分钟。那么日志一旦超过了设置的时间,怎么处理呢原创 2022-04-10 11:28:07 · 3956 阅读 · 0 评论 -
kafka文件在borker中的存储逻辑和查找逻辑
一 kafka文件的存储机制Topic是逻辑上的概念,而partition是物理上的概念,1个topic可以分为多个partition,一个分区可以分为多个segment。每个partition对应于一个log文件,该log文件中存储的就是Producer生产的数 据。Producer生产的数据会被不断追加到该log文件末端,为防止log文件过大导致数据定位效率低下,Kafka采取了分片和索引机制, 将每个partition分为多个segment。每个segment包括:“.index”文件、“.原创 2022-04-10 10:53:24 · 476 阅读 · 0 评论 -
kafka中手动调整分区副本存储和leader分区再平衡
一 调整副本存储1.1 需求背景描述在生产环境中,每台服务器的配置和性能不一致,但是Kafka只会根据自己的代码规则创建对应的分区副 本,就会导致个别服务器存储压力较大。所有需要手动调整分区副本的存储,如下图需求:创建一个新的topic,4个分区,两个副本,名称为three。将 该topic的所有副本都存储到broker0和 broker1两台服务器上。 1.2 修改操作步骤手动调整分区副本存储的步骤如下: 1.创建一个新的 topic,名称为 three。[atg.原创 2022-04-10 10:34:17 · 1035 阅读 · 0 评论 -
kafka在broker中新增副本因子
一 增加副本因子1.1 背景描述在生产环境当中,由于某个主题的重要等级需要提升,我们考虑增加副本。副本数的 增加需要先制定计划,然后根据计划执行。例子:1.创建一个分区,3个副本的topic主题: kafka_fourbin/kafka-topics.sh --create --zookeeper 192.168.152.138,192.168.152.140,192.168.153.136 --replication-factor 1 --partitions 3 --topi原创 2022-04-10 10:08:53 · 989 阅读 · 0 评论 -
kafka borker的工作流程以及节点上线与下线
一 zk中存储kafka的那些信息在zk中存储kafka的这些信息:1.记录有哪些服务器:/kafka/brokers/ids[0,1,2]2.记录谁是Leader,有哪些服务器可用/kafka/brokers/topics/first/partitions/0/state{"leader":1 ,"isr":[1,0,2] } 3.一些辅助选举的leader信息/kafka/controller二 kafka的broker的工作流程2.1...原创 2022-04-09 16:22:39 · 1171 阅读 · 0 评论 -
kafka生产端调优:数据可靠,重复、丢失、乱序的处理
一 kafka发送数据问题-丢数据1.1 丢数据问题抛出根据发送端Ack的发送机制,存在以下问题,怎么保证其可靠性。情况一: ack=0,生产者发送过来的数据,不需要等数据落盘应答问题:存在数据丢数据问题情况二: ack=1,生产者发送过来数据,leader收到数据后就应答。问题: leader收到应答后,正好某种原因挂掉了,新的leader被选举出来,但是没有收到hello的信息,因为之前的旧leader发送的ack应答机制,生产者已经认为发送成功了。此时的问题还是丢数..原创 2022-04-07 20:49:07 · 2330 阅读 · 0 评论 -
kafka生产端的调优: 提高数据吞吐量
一 生产端提高吞吐量直接先上答案,可以从这4个方面进行入手1.batch.size:批次大小,默认16k 2.linger.ms:等待时间,修改为5-100ms 一次拉一个, 来了就走 3.compression.type:压缩snappy4 RecordAccumulator:缓冲区大小,修改为64m二 代码添加1.代码添加配置package com.ljf.spring.boot.demo.producer;import com.ljf.spring.bo.原创 2022-04-07 11:15:21 · 1854 阅读 · 0 评论 -
kafka的生产者的分区策略
一 kafka分区策略1.1 分区的好处分区的好处:便于将数据进行合理存储,将数据分割成一块一块的存储到不同的broker中。提高并行度:生产者按分区为单位进行生产,消费者按分区为单位进行消费。1.2 分区的策略1.给定了分区号,直接将数据发送到指定的分区里面去。2.没有给定分区号,通过key的hashcode,和 topic的分区数,进行取模。例如:key1的hash值=5, key2的hash值=6 ,topic的partition数=2,那 么key1 对应的value原创 2022-04-07 10:23:39 · 5280 阅读 · 0 评论 -
kafka的副本以及分区与副本的关系
一 副本的作用1.Kafka 副本作用:提高数据可靠性。2.Kafka 中副本分为:Leader 和 Follower。Kafka 生产者只会把数据发往 Leader, 然后 Follower 找 Leader 进行同步数据。读写由leader来完成,follower只备份,和leader同步数据,leader发生故障,follower顶上去。leader副本:可以理解为某个分区中,除了不是副本的那个分区。3.Kafka 分区中的所有副本统称为 AR(Assigned Repllica原创 2022-03-06 19:06:07 · 11185 阅读 · 3 评论 -
脚本一键启动zk,kafka集群
一 zk的一键启动脚本1.1 脚本内容#!/bin/bashcase $1 in"start"){ for i in 192.168.152.136 192.168.152.138 192.168.152.140 do echo ------------- zookeeper $i 启动 ------------ ssh $i "/root/export/servers/zookeeper-3.4.10/bin/zkServer.sh start" done};;"原创 2022-02-28 23:02:03 · 2632 阅读 · 0 评论 -
kafka集群搭建
一 集群规划阐述 192.168.152.128 master 192.168.152.129 slaver01 192.168.152.130 slaver02 安装包存放的目录:/ bigdata-software 安装程序存放的目录:/export/servers 三台机器执行以下命令创建统一文件目录 mkdir -p /export/servers mkdir -p /export/ bigdata-software ...原创 2022-02-27 10:47:47 · 1261 阅读 · 0 评论 -
kafka 常用命令行操作(查看主题,生产数据,消费数据)
一 topic相关操作1.1 查看 主题命令参数[root@localhost kafka_2.12-2.1.0]# bin/kafka-topics.shCreate, delete, describe, or change a topic.Option Description ------ -...原创 2022-02-27 10:44:44 · 13986 阅读 · 4 评论 -
kafka的快速操作版
一 kafka的操作配置1.1 修改配置文件1.2 scp命令复制配置好的文件1.3 启动命令1.前台启动bin/kafka-server-start.sh config/server.properties2.进程后台启动nohup bin/kafka-server-start.sh config/server.properties &3.scp命令复制一台机器配置好的到另一台scp -r /zk bonc@10.119.65.32:/hom原创 2022-01-09 23:28:54 · 811 阅读 · 0 评论 -
springboot 整合kafka 实现生产,消费数据
一 kafka集群的启动1.1 机器说明192.168.152.128 master 192.168.152.129 slaver01 192.168.152.130 slaver02 1.2 查看防火墙如果防火墙开着,则进行关闭:systemctl stopfirewalld1.在master节点查看防火墙状态:systemctl status firewalld可以看到:Active: inactive...原创 2021-04-03 23:28:45 · 1832 阅读 · 0 评论 -
kafka 集群的搭建以及操作
二.kafka的安装注意:kafka的安装必须要先安装zk,必须要保证时钟同步2.1下载上传解压压缩包cd/export/softwarestar -zxvf kafka_2.11-1.0.0.tgz -C ../servers/2.2修改配置文件第一台修改配置文件cd /export/servers/kafka_2.11-1.0.0/configvim server.propertiesbroker.id=0log.dirs=/export/s...原创 2020-06-19 21:38:32 · 494 阅读 · 0 评论 -
kafka的基本知识(面试备用)
一.概述1.1概述Kafka是一个分布式的消息订阅系统,消息被持久化到一个topic中,topic是按照“主题名-分区”存储的,一个topic可以分为多个partition,在parition(分区)内的每条消息都有一个有序的id号,这个id号被称为偏移(offset),记录消息的消息位置。作用就是:解耦,异步,并行。Mq支持事务(传统的),kafka不支持事务。1.2kafka的组件以及作用1.producer:消息的生产者,主要是用于生产消息的。通过push的方式,主动的将数据推..原创 2020-06-19 21:36:27 · 1906 阅读 · 0 评论 -
kafka消费者消费消息的流程
1.1消费流程1.消息有生产者发布到kafka集群后,会被消费者消费。消息的消费模型有两种,推送模型(push)和拉取模型(pull)。1.1 基于推送模型(push)的消息系统,有消息代理记录消费者的消费状态。消息代理在将消息推送到消费者后,标记这条消息已经消费,但这种方式无法很好地保证消费被处理。如果要保证消息被处理,消息代理发送完消息后,要设置状态为“已发送”,只要收到消费者的...原创 2019-03-03 16:06:06 · 12010 阅读 · 1 评论 -
kafka的生产者的生产流程
2.1 kafka的生产方式Producer采用推(push)模式将消息发送到broker,每条消息都被追加(append)到分区(partition)中,属于顺序写磁盘(顺序写磁盘效率比随机写要高,保障kafka吞吐率,在读取使用的时候读取速度也会更快)。kafka集群有多个消息代理服务器(broker-server)组成,发布到Kafka集群的每条消息都有一个类别,用主题(topic...原创 2019-03-03 15:37:34 · 817 阅读 · 0 评论 -
kafka学习二:在linux环境下kafka搭建环境(单机版)
1.下载kafka软件包:这里使用2.10版本的kafka2. 解压缩kafka软件包:这里将软件包放在 softpackage0324文件下 cd softpackage0324tar -zxvf kafka_2.10-0.8.2.1.tgz3.进入 kafka_2.10-0.8.2.1 cd kafka_2.10-0.8.2.14.修改配置文件:进入config文件原创 2016-04-15 15:59:51 · 665 阅读 · 0 评论 -
kafka学习三:在windows环境下kafka搭建环境(单机版)
1.在windows环境下kafka搭建环境(单机版) 参考百度网盘2.eclipse下执行java api 实现producer和consumer之间的通信; 参考网盘2.linux和windows之间通过kafka进行通信; 参考网盘原创 2016-07-19 17:18:52 · 513 阅读 · 0 评论 -
kafka学习一:原理和概念
Kafka是分布式发布-订阅消息系统。它最初由LinkedIn公司开发,之后成为Apache项目的一部分。Kafka是一个分布式的,可划分的,冗余备份的持久性的日志服务。它主要用于处理活跃的流式数据。在大数据系统中,常常会碰到一个问题,整个大数据是由各个子系统组成,数据需要在各个子系统中高性能,低延迟的不停流转。传统的企业消息系统并不是非常适合大规模的数据处理。为了已在同时搞定在线应用(消息)原创 2016-04-15 15:07:41 · 5039 阅读 · 0 评论