Kakfa
文章平均质量分 86
Kakfa相关内容
RichardGeek
一枚普通的乐于分享的程序猿博主
展开
-
kafka(17) Kafka中的选举机制
目录前言控制器选举(Kafka核心总控制器Controller)Controller选举机制Controller防止控制器脑裂机制Kafka Controller控制器的职责Kafka Controller控制器的作用(同上职责)Partition Replicates副本选举机制消费者组选举Kafka协调器参考前言Kafka是一个高性能,多副本,可复制的分布式消息系统。在整个系统中,涉及到多处选举机制,被不少人搞混,这里总结一下,本篇文章大概会从三个方.原创 2022-03-03 15:51:45 · 3294 阅读 · 0 评论 -
kafka(16) Kafka Consumer Rebalance
目录ConsumerRebalance简介触发 Rebalance 的时机消费者消费消息的offset记录机制Rebalance 过程分析Rebalance过程细节描述Rebalance 场景分析提交位移相关概念消费者Rebalance分区分配策略参考文章ConsumerRebalance简介Consumer Rebalance 本质上是一种协议,规定了一个 Consumer Group 下的所有 consumer 如何达成一致...原创 2022-03-03 15:06:17 · 806 阅读 · 0 评论 -
kafka(15) Kafka Connect
概念Kafka Connect 是一款可扩展并且可靠地在 Apache Kafka 和其他系统之间进行数据传输的工具。 可以很简单的定义 connectors(连接器) 将大量数据迁入、迁出Kafka。逻辑图Kafka Connect 特性如下:Kafka 连接器的通用框架:Kafka Connect 标准化了其他数据系统与Kafka的集成,从而简化了连接器的开发,部署和管理 支持分布式模式和单机模式部署 Rest API:通过简单的Rest API管理连接器 偏移量管理:针对So原创 2021-11-05 16:26:11 · 1576 阅读 · 0 评论 -
kafka(14) 环境搭建(源码包方式)
If you also want to delete any data of your local Kafka environment including any events you have created along the way, run the command:$ rm -rf /tmp/kafka-logs /tmp/zookeeperCONGRATULATIONS!You have successfully finished the Apache Kafka quick...原创 2021-11-04 17:21:04 · 955 阅读 · 0 评论 -
kafka(13) kafka日志清理机制
目录Kafka 日志存储结构日志删除日志压缩Kafka 日志存储结构来看一个整体的kafka日志目录结构图:Kafka 将消息存储到磁盘中,随着写入数据不断增加,磁盘占用空间越来越大,为了控制占用空间就需要对消息做一定的清理操作。Kafka 存储日志结构分析中每一个分区副本(Replica)都对应一个 Log,而 Log 又可以分为多个日志分段(LogSegment),这样就便于 Kafka 对日志的清理操作。Kafka提供了两种日志清理策略:日志删除...原创 2021-11-04 15:08:18 · 1889 阅读 · 0 评论 -
kafka(12) kafka的副本和同步原理
Kafka副本的之前提到过,分为Leader副本和Follower副本,也就是主副本和从副本,和其他的存储比如Mysql不一样的是,Kafka中只有Leader副本会对外提供服务,Follower副本只是单纯地和Leader保持数据同步,作为数据冗余容灾的作用。在Kafka中我们把所有副本的集合统称为AR(Assigned Replicas),和Leader副本保持同步的副本集合称为ISR(InSyncReplicas)。ISR是一个动态的集合,维持这个集合会通过replica.lag.time.m原创 2021-11-04 14:04:00 · 1232 阅读 · 0 评论 -
kafka(11) 如何保证消息不丢失,消息可靠性
消息可靠性的保证基本上我们都要从3个方面来阐述(这样才比较全面,无懈可击)生产者发送消息丢失 kafka自身消息丢失 消费者消息丢失生产者发送消息丢失kafka支持3种方式发送消息,这也是常规的3种方式,发送后不管结果、同步发送、异步发送,基本上所有的消息队列都是这样玩的。发送并忘记,直接调用发送send方法,不管结果,虽然可以开启自动重试,但是肯定会有消息丢失的可能 同步发送,同步发送返回Future对象,我们可以知道发送结果,然后进行处理 异步发送,发送消息,同时指定一个回调函..原创 2021-11-04 11:40:42 · 536 阅读 · 0 评论 -
kafka(10) 应用级实战
kafka 官网:Apache Kafka1.kafka-connect 异构数据源同步方案 业务实战背景: Confluent Schema Registry +kafka-connector Kafka 中使用 Avro 序列化组件(三):Confluent Schema Registry - 云+社区 - 腾讯云掘金https://juejin.cn/post/7025497478535315469Apache Kafkahttp://kafka.apa...原创 2021-11-02 23:02:26 · 130 阅读 · 0 评论 -
kafka(9) 消费者提交消费位移时提交的是当前消费到的最新消息的 offset 还是 offset+1?
对于 Kafka 中的分区而言,它的每条消息都有唯一的 offset,用来表示消息在分区中对应的位置。对于消费者而言,它也有一个 offset 的概念,消费者使用 offset 来表示消费到分区中某个消息所在的位置。单词“offset”可以翻译为“偏移量”,也可以翻译为“位移”。很多朋友都有不同的认识,我比较赞同这类说法:对 offset 做了一些区分:对于消息在分区中的位置,我们将 offset 称为“偏移量”;对于消费者消费到的位置,将 offset 称为“位移”,有时候也会更明确地称之为“消费位移原创 2021-11-02 20:27:57 · 828 阅读 · 0 评论 -
kafka(8) Kafka 中的消息存储在磁盘上的目录布局
注意:本篇文章的概念性比较强,个人觉得这篇文章的每个点都很重要!Kafka 中的消息是以主题topic为基本单位进行归类的,各个主题在逻辑上相互独立。每个主题又可以分为一个或多个分区,分区的数量可以在主题创建的时候指定,也可以在之后修改。每条消息在发送的时候会根据分区规则被追加到指定的分区中,分区中的每条消息都会被分配一个唯一的序列号,也就是通常所说的偏移量(offset),具有4个分区的主题的逻辑结构见下图。如果分区规则设置得合理,那么所有的消息可以均匀地分布到不同的分区中,这样就可以实现水平扩.原创 2021-11-02 20:10:07 · 1432 阅读 · 0 评论 -
kafka(7) kafka-分区器
消息在通过 send() 方法发往 broker 的过程中,有可能需要经过拦截器(Interceptor)、序列化器(Serializer)和分区器(Partitioner)的一系列作用之后才能被真正地发往 broker。拦截器一般不是必需的,而序列化器是必需的。消息经过序列化之后就需要确定它发往的分区,如果消息 ProducerRecord 中指定了 partition 字段,那么就不需要分区器的作用,因为 partition 代表的就是所要发往的分区号。如果消息 ProducerRecord 中原创 2021-11-02 18:28:45 · 630 阅读 · 0 评论 -
kafka(6) kafka序列化器-消息序列化与反序列化
生产者需要用序列化器(Serializer)把对象转换成字节数组才能通过网络发送给Kafka。而在对侧,消费者需要用反序列化器(Deserializer)把从 Kafka 中收到的字节数组转换成相应的对象。先参考下面代码实现一个简单的客户端。为了方便,消息的 key 和 value 都使用了字符串,对应程序中的序列化器也使用了客户端自带的 org.apache.kafka.common.serialization.StringSerializer,除了用于 String 类型的序列化..原创 2021-11-02 18:22:29 · 3205 阅读 · 0 评论 -
kafka(5) Kafka-拦截器 发送消息过程中拦截器的用途
消息在通过 send() 方法发往 broker 的过程中,有可能需要经过拦截器、序列化器 和 分区器 的一系列作用之后才能被真正地发往 broker。拦截器是早在 Kafka 0.10.0.0 中就已经引入的一个功能,Kafka 一共有两种拦截器:生产者拦截器和消费者拦截器。这里主要讲述生产者拦截器的相关内容生产者拦截器既可以用来在消息发送前做一些准备工作,比如按照某个规则过滤不符合要求的消息、修改消息的内容等,也可以用来在发送回调逻辑前做一些定制化的需求,比如统计类工作。生产者拦截器的使用也原创 2021-11-02 18:11:00 · 435 阅读 · 0 评论 -
kafka(4) Kafka 生产者客户端工作原理
消息在真正发往 Kafka 之前,有可能需要经历拦截器、序列化器和分区器等一系列的作用,前面已经做了一系列分析。那么在此之后又会发生什么呢?先看一下生产者客户端的整体架构,如下图所示。整个生产者客户端由两个线程协调运行,这两个线程分别为主线程和发送线程。在主线程中由 KafkaProducer 创建消息,然后通过可能的拦截器、序列化器和分区器的作用之后缓存到消息收集器(RecordAccumulator,也称为消息累加器)中。发送线程负责从消息收集器中获取消息并将其发送到 Kafka 中。.原创 2021-11-01 21:01:07 · 130 阅读 · 0 评论 -
kafka(3) kafka那么快-----‘零拷贝’ 技术
首先要有个概念,kafka高性能的背后,是多方面协同后、最终的结果。kafka从宏观架构、分布式partition存储、ISR数据同步、以及“无孔不入”的高效利用磁盘/操作系统特性,这些多方面的协同,是kafka成为性能之王的必然结果。Kafka提高性能的方式除了消息顺序追加、页缓存等技术,Kafka 还使用零拷贝技术来进一步提升性能。先说说零拷贝零拷贝并不是不需要拷贝,而是减少不必要的拷贝次数。通常是说在IO读写过程中。实际上,零拷贝是有广义和狭义之分,目前我们通常听到的零拷贝,包括上面这原创 2021-10-31 13:17:59 · 642 阅读 · 0 评论 -
kafka(2) 安装部署(k8s helm安装)
1.helm repo add kaiyuanshe http://mirror.kaiyuanshe.cn/kubernetes/charts/2.helm search repo kafka-manager3.helm fetch kaiyuanshe/kafka-manager4.tar -zxvf kafka-manager-2.3.5.tgz5.kubectl create namespace kafka6.helm install kakfa-manager --name..原创 2021-10-29 00:19:47 · 628 阅读 · 0 评论 -
kafka(1) 初识
简介kafka是一个分布式消息队列。具有高性能、持久化、多副本备份、横向扩展能力。生产者往队列里写消息,消费者从队列里取消息进行业务逻辑。一般在架构设计中起到解耦、削峰、异步处理的作用。kafka对外使用topic的概念,生产者往topic里写消息,消费者从读消息。为了做到水平扩展,一个topic实际是由多个partition组成的,遇到瓶颈时,可以通过增加partition的数量来进行横向扩容。单个parition内是保证消息有序。核心概念broker:节点,即集群中的一台主机。若存在原创 2021-10-28 17:01:11 · 263 阅读 · 0 评论