摘要:一、日志存储 ### [kafka高级特性解析] ~~~ [日志存储索引] ~~~ [偏移量索引] ~~~ [时间戳索引] ### 索引 ~~~ 偏移量索引文件用于记录消息偏移量与物理地址之间的映射关系。 ~~~ 时间戳索引文件则根据时间戳查找对应的偏移量。 ~~~ # 文件: ~~~ # 查看一个
阅读全文
摘要:一、偏移量索引 ### 位置索引保存在index文件中 ~~~ log日志默认每写入4K(log.index.interval.bytes设定的),会写入一条索引信息到index文件中, ~~~ 因此索引文件是稀疏索引,它不会为每条日志都建立索引信息。 ~~~ log文件中的日志,是顺序写入的,由m
阅读全文
摘要:一、自定义分配策略 ### 自定义分配策略 ~~~ 自定义的分配策略必须要实现 ~~~ org.apache.kafka.clients.consumer.internals.PartitionAssignor接口 ~~~ PartitionAssignor接口的定义如下: Subscription
阅读全文
摘要:一、日志存储概述 ### 日志存储概述 ~~~ Kafka 消息是以主题为单位进行归类,各个主题之间是彼此独立的,互不影响。 ~~~ 每个主题又可以分为一个或多个分区。 ~~~ 每个分区各自存在一个记录消息数据的日志文件。 [root@hadoop01 ~]# ls /opt/yanqi/serve
阅读全文
摘要:一、多重分区分配算法:RoundRobinAssignor ### RoundRobinAssignor ~~~ RoundRobinAssignor的分配策略是将消费组内订阅的所有Topic的分区 ~~~ 及所有消费者进行排序后尽量均衡的分配(RangeAssignor是针对单个Topic的分区进
阅读全文
摘要:一、修改分区副本 ### 修改分区副本 ~~~ # 实际项目中, ~~~ 我们可能由于主题的副本因子设置的问题, ~~~ 需要重新设置副本因子或者由于集群的扩展,需要重新设置副本因子。 ~~~ topic一旦使用又不能轻易删除重建,因此动态增加副本因子就成为最终的选择。 ~~~ # 说明: ~~~
阅读全文
摘要:一、分区分配策略 ### 分区分配策略 ~~~ 在Kafka中,每个Topic会包含多个分区, ~~~ 默认情况下一个分区只能被一个消费组下面的一个消费者消费,这里就产生了分区分配的问题。 ~~~ Kafka中提供了多重分区分配算法(PartitionAssignor)的实现: ~~~ RangeA
阅读全文
摘要:一、自动再均衡 ### [kafka高级特性解析] ~~~ [自动再均衡] ~~~ [broker宕机分区自动分配] ~~~ [broker宕机启动主题分区恢复初始状态] ### 自动再均衡 ~~~ 我们可以在新建主题的时候,手动指定主题各个Leader分区以及Follower分区的分配情况, ~~
阅读全文
摘要:一、分区重新分配 ### [kafka高级特性解析] ~~~ [分区重新分配] ~~~ [创建kafka集群实例二] ~~~ [自定义分配分区] ### 分区重新分配 ~~~ 向已经部署好的Kafka集群里面添加机器,我们需要从已经部署好的Kafka节点中复制相应的配置文件, ~~~ 然后把里面的b
阅读全文
摘要:一、创建kafka集群实例二: ### 添加kafka实例二:在hadoop02搭建Kafka;此处不需要zookeeper,切记!!! ### 配置hosts文件 [root@hadoop02 ~]# vim /etc/hosts 192.168.1.111 hadoop01 192.168.1.
阅读全文
摘要:一、自定义分配分区:分区重新分配实例 ### 查看主题 ~~~ # 把hadoop02上tp_re_01的partition3/4分区重新分配到hadoop02上 [root@hadoop01 ~]# kafka-topics.sh --zookeeper localhost:2181/myKafk
阅读全文
摘要:一、Leader选举 ### 下图中 ~~~ 分区P1的Leader是0,ISR是0和1 ~~~ 分区P2的Leader是2,ISR是1和2 ~~~ 分区P3的Leader是1,ISR是0,1,2。 ~~~ # 生产者和消费者的请求都由Leader副本来处理。 ~~~ Follower副本只负责消费
阅读全文
摘要:一、创建一个maven项目 ### 创建一个maven项目:demo-10-kafka-groupoffsets ### 添加maven依赖 <dependencies> <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kaf
阅读全文
摘要:一、副本机制 ### Kafka在一定数量的服务器上对主题分区进行复制。 ~~~ # 当集群中的一个broker宕机后系统可以自动故障转移到其他可用的副本上,不会造成数据丢失。 ~~~ # --replication-factor 3 1leader+2follower ~~~ 将复制因子为1的未复
阅读全文
摘要:一、KafkaAdminClient应用实现流程 ### 主要操作步骤: ~~~ 客户端根据方法的调用创建相应的协议请求, ~~~ 比如创建Topic的createTopics方法,其内部就是发送CreateTopicRequest请求。 ~~~ 客户端发送请求至Kafka Broker。 ~~~
阅读全文
摘要:一、偏移量管理 ### 偏移量管理 ~~~ Kafka 1.0.2,__consumer_offsets主题中保存各个消费组的偏移量。 ~~~ 早期由zookeeper管理消费组的偏移量。 ### 查询方法: ~~~ 通过原生 kafka 提供的工具脚本进行查询。 ~~~ 工具脚本的位置与名称为bi
阅读全文
摘要:一、偏移量管理实例[需要启动代码程序查看] ### 查看指定group.id 的消费者消费情况 [root@hadoop ~]# kafka-consumer-groups.sh --bootstrap-server localhost:9092 \ --describe --group group
阅读全文
摘要:一、必要参数配置 1、必要参数配置 kafka-topics.sh --config xx=xx --config yy=yy 二、配置给主题的参数。 属性 默认值 服务器默认属性 说明 cleanup.policy delete log.cleanup.policy 要么是”delete“要么是”
阅读全文
摘要:一、KafkaAdminClient应用 ### KafkaAdminClient应用说明 ~~~ 除了使用Kafka的bin目录下的脚本工具来管理Kafka, ~~~ 还可以使用管理Kafka的API将某些管理查看的功能集成到系统中。 ~~~ 在Kafka0.11.0.0版本之前,可以通过kafk
阅读全文
摘要:一、修改主题 ### 为topic_x加入segment.bytes配置 [root@hadoop ~]# kafka-topics.sh --zookeeper localhost:2181/myKafka --alter \ --topic topic_x --config segment.by
阅读全文