
kafka
文章平均质量分 93
kafka深入理解
demon7552003
这个作者很懒,什么都没留下…
展开
-
kafka的版本号与版本演进
1、kafka版本命名规则:在1.x之前的版本,基本遵循4位版本号,例如:0.8.2.2、0.9.0.1、0.10.0.0…在1.x之后,kafka 全面启用了遵循 Major.Minor.Patch 的三位版本规则,其中Major表示大版本,通常是一些重大改变,因此彼此之间功能可能会不兼容;Minor表示小版本,通常是一些新功能的增加;最后Patch表示修订版,主要为修复一些重点Bug而发布的版本。例如:Kafka 2.1.1,大版本就是2,小版本是1,Patch版本为1,是为修复Bug发布的第1个版转载 2021-04-04 15:03:17 · 1172 阅读 · 0 评论 -
kafka技术内幕(二)
Kafka服务器协议略时间轮Kafka中存在大量的延时操作, 比如延时生产、延时拉取和延时删除等。Kafka并没有使用JDK自带的Timer 或DelayQueue来实现延时的功能,而是基于时间轮的概念自定义实现了一个用于延时功能的定时器(SystemTimer)。JDK中Timer和DelayQueue的插入和删除操作的平均时间复杂度为O(nlogn)并不能满足Kafka的高性能要求, 而基于时间轮可以将插入和删除操作的时间复杂度都降为0(1) 。时间轮的应用并非Kafka独有, 其应用场景还有很原创 2021-04-04 15:02:01 · 328 阅读 · 0 评论 -
kafka技术内幕(一)
文章目录概念基本概念topic,partition副本生产者重要组件发送消息流程元数据的更新消费者消费者与消费组客户端订阅主题与分区消息消费位移提交控制或关闭消费指定位移消费再均衡消费者拦截器多线程实现主题和分区主题的管理KafkaAdminClient分区的管理选择合适的分区数日志存储文件目录布局日志格式日志索引偏移量索引时间戳索引日志清理日志删除基于时间基于日志大小基于日志起始偏移量日志压缩磁盘存储页缓存零拷贝附录服务端参数配置**`server.properties`**配置必配置属性参数说明Lea.原创 2021-04-04 15:00:45 · 443 阅读 · 0 评论 -
kafka常用命令及问题解决
常用命令Kafka内部提供了许多管理脚本,这些脚本都放在$KAFKA_HOME/bin目录下,而这些类的实现都是放在源码的kafka/core/src/main/scala/kafka/tools/路径下。topic相关kafka-topics.shkafka-topics.sh用于维护topic。包括create, delete, describe, change#创建topickafka-topics.sh --create --bootstrap-server kafka1:9092 -原创 2021-04-04 14:59:09 · 2684 阅读 · 0 评论 -
深入理解Kafka(4)-主题与分区
主题的管理主题的管理包括创建主题、查看主题信息、修改主题和删除主题等操作。可以通过Kafka提供的kafka-topics.sh 脚本来执行这些操作,这个脚本位于$KAFKA_HOME/bin/ 目录下,其核心代码仅有一行,具体如下:exec $(dirname $0)/kafka-run-class.sh kafka.admin.TopicCommand "$@"可以看到其实质上是调用了...原创 2019-06-16 16:39:05 · 935 阅读 · 0 评论 -
深入理解Kafka(3)-Consumer
消费者与消费组一个消费者对应一个消费组。每一个分区只能被一个消费组中的某一个消费者消费。消息投递模式对于消息中间件而言,一般有两种消息投递模式:点对点(P2P, Point-to-Point)模式点对点模式是基于队列的,消息生产者发送消息到队列,消息消费者从队列中接收消息。发布/订阅( Pub/Sub )模式。发布/订阅模式在消息的一对多广播时采用。Kafka 同时...原创 2019-06-16 14:24:33 · 237 阅读 · 0 评论 -
深入理解Kafka(2)-Producer
整体架构消息在真正发往Kafka之前,有可能需要经历拦截器(lnterceptor)、序列化器(Serializer)和分区器(Partitioner)等一系列的作用,生产者客户端的整体架构,如图所示。整个生产者客户端由两个线程协调运行,这两个线程分别为:主线程和Sender 线程(发送线程)。在主线程中由K afkaProducer 创建消息,然后通过可能的拦截器、序列化器和分区...原创 2019-06-16 13:56:11 · 433 阅读 · 0 评论 -
Kafka配置
服务器端安装相关参数 意义 broker.id broker 的编号,如果集群中有多个broker ,则每个broker 的编号需要设置的不同 port kafka监听端口,一般默认是9092,使用1024以前端口的话就需要root权限。E.g:开启线程消费时用到的就是这个端口 zookeeper.connect 用于保存broker元数据的zo...原创 2019-06-16 12:45:04 · 315 阅读 · 0 评论 -
深入理解Kafka(1)
Kafka 的三大角色:消息系统:Kafka 和传统的消息系统(也称作消息中间件〉都具备系统解耦、冗余存储、流量削峰、缓冲、异步通信、扩展性、可恢复性等功能。与此同时, Kafka 还提供了大多数消息系统难以实现的消息顺序性保障及回溯消费的功能。存储系统:Kafka 把消息持久化到磁盘,相比于其他基于内存存储的系统而言,有效地降低了数据丢失的风险。也正是得益于Kafka 的消息持久化功...原创 2019-06-16 09:45:33 · 697 阅读 · 0 评论 -
TimingWheel 时间轮详解
在kafka中,有许多请求并不是立即返回,而且处理完一些异步操作或者等待某些条件达成后才返回,这些请求一般都会带有timeout参数,表示如果timeout时间后服务端还不满足返回的条件,就判定此次请求为超时,这时候kafka同样要返回超时的响应给客户端,这样客户端才知道此次请求超时了。比如ack=-1的producer请求,就需要等待所有的isr备份完成了才可以返回给客户端,或者到达timeou...转载 2019-06-15 07:17:56 · 597 阅读 · 0 评论