
Kafka
文章平均质量分 87
youngitman
个人从事金融行业,就职过易极付、思建科技等重庆一流技术团队,目前就职于某网约车平台负责整个支付系统建设。自身对金融行业有强烈的爱好。同时也实践大数据、数据存储、自动化集成和部署、分布式微服务、响应式编程、人工智能等领域。
个人博客地址:http://youngitman.tech
展开
-
Kafka命令行常用命令说明(一)
基于0.8.0版本。 ##查看topic分布情况kafka-list-topic.shbin/kafka-list-topic.sh --zookeeper 192.168.197.170:2181,192.168.197.171:2181 (列出所有topic的分区情况)bin/kafka-list-topic.sh --zookeeper 192.168.197.1...原创 2016-06-02 11:48:30 · 590 阅读 · 0 评论 -
Consumer rebalance失败问题定位和解决思路
背景最近在公司使用Kafka的Consumer高级API出现一些问题,问题描述如下: 大象push推送队列,在(大约每天8点到10点间)发送消息高峰期,消费节点负载处于高位、jvm内存占用大于%80。这时候JVM会频繁持续FullGC而卡住异步线程(stop the world),心跳等异步线程就没法正常收发数据包。这种情况下导致zk会话过期触发Consumer rebalance,zk会...原创 2017-02-05 18:10:10 · 1170 阅读 · 0 评论 -
Kafka Consumer机制优化-保证每条消息至少消费一次
背景Kafka中由Consumer维护消费状态,当Consumer消费消息时,支持2种模式commit消费状态,分别为立即commit和周期commit。前者会导致性能低下,做到消息投递恰好一次,但很少使用,后者性能高,通常用于实际应用,但极端条件下无法保证消息不丢失。目标在有效期内,保证每条消息至少可被消费一次问题分析请看如上图1,Consumer Thread读取一...原创 2017-02-06 10:17:47 · 1044 阅读 · 0 评论 -
Kafka数据可靠性与一致性解析
1.Partition Recovery机制每个Partition会在磁盘记录一个RecoveryPoint, 记录已经flush到磁盘的最大offset。当broker fail 重启时,会进行loadLogs。 首先会读取该Partition的RecoveryPoint,找到包含RecoveryPoint的segment及以后的segment, 这些segment就是可能没有 完全fl...原创 2017-02-06 10:21:56 · 141 阅读 · 0 评论 -
Kafka Broker HA机制
从图中我们可以看出HA的缓存分为生产缓存事件池和拉取缓存事件池两块结构相同的缓存区,分别缓存生产和拉取请求 2个缓存事件池的作用:生产缓存事件池:当生产者设置了等待从partition的同步选项(requiredAcks为-1)时才会启动生产缓存。因为每一批生产的消息,需要等待所有的处于同步状态的从partition(in-sync)同步成功,在所有follow partition上报自...原创 2017-02-06 10:22:08 · 103 阅读 · 0 评论 -
Kafka Producer机制优化-提高发送消息可靠性
名称解释:Broker:负责消息的存储和转发,也可以叫消息中介节点 Topic:每种消息的分类叫做主题(Topic)。 Partition:每一个Topic被切分为多个Partitions。背景Producer构造Message对象时,传入key参数,当Producer发送Message,会根据key确定目标Partition,当Kafka集群中某个Partition所有存活的节...原创 2017-02-06 10:22:19 · 152 阅读 · 0 评论 -
mafka平台架构
什么MafkaMafka一个基于Kafka开发的一个分布式消息中间件综合解决方案。 Mafka架构mafka平台里面有四个角色,这四个角色是通过zk进行协调的。mafka-client:负责发送和接受消息。mafka-manager:对集群和client状态管理。mafka-monitor:用于监控和报警。mafka集群:由多个broker组成的...原创 2017-02-06 10:22:31 · 446 阅读 · 0 评论 -
Apache Kafka中Follower如何与Leader同步数据
重要名词解释: log end offset (logEndOffset),表示log中最后的message的offst位置.high watermark (HW),表示Partition各个replicas数据间同步且一致的offset位置,即表示allreplicas已经commit位置,每个Broker缓存中维护此信息,并不断更新。 Kafka中replication复...原创 2017-02-07 13:40:15 · 2327 阅读 · 0 评论 -
如何在Kafka中修改Topic的preferred replica
操作背景假如topic test.example中partition 0的replicas为[0,4],则0为preferred replica,应该成为leader。 这时我们期望4为preferred replica,并变成leader。执行步骤如下:1.查看当前的topic详细信息: lizhitao@users-MacBook-Pro-2:~$ ./bin/kafka-t...原创 2017-02-07 13:40:25 · 428 阅读 · 1 评论 -
消息队列中点对点与发布订阅区别
背景知识JMS一个在 Java标准化组织(JCP)内开发的标准(代号JSR 914)。2001年6月25日,Java消息服务发布JMS 1.0.2b,2002年3月18日Java消息服务发布 1.1. Java消息服务(Java Message Service,JMS)应用程序接口是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行...原创 2017-02-05 18:09:58 · 235 阅读 · 0 评论 -
Apache Kafka消息传递可靠性分析
如果MQ没有类似数据库事务结构和保证,是不可能达到消息投递100%可靠的,极端情况下消息投递要么丢失或重复。下面咋们从producer,broker,consumer的角度分析一下Kafka中会出现哪些情况:1.producer发送消息到Broker目前生产者发送消息(request.required.acks)有三种方式。 acks = 0: producer不会...原创 2017-02-05 18:09:47 · 97 阅读 · 0 评论 -
Kafka文件存储机制那些事
Kafka是什么Kafka是最初由Linkedin公司开发,是一个分布式、分区的、多副本的、多订阅者,基于zookeeper协调的分布式日志系统(也可以当做MQ系统),常见可以用于web/nginx日志、访问日志,消息服务等等,Linkedin于2010年贡献给了Apache基金会并成为顶级开源项目。1.前言一个商业化消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列...原创 2017-02-05 18:05:33 · 111 阅读 · 0 评论 -
Kafka命令行常用命令说明(二)
参考官网site:http://kafka.apache.org/documentation.html#basic_ops_cluster_expansion https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Replicationtools-6.ReassignPartitionsTool ...原创 2016-06-13 15:44:21 · 147 阅读 · 0 评论 -
Kafka 设计与原理详解
摘要: 一、Kafka简介 本文综合了我之前写的kafka相关文章,可作为一个全面了解学习kafka的培训学习资料。 转载请注明出处 : 本文链接 1.1 背景历史 当今社会各种应用系统诸如商业、社交、搜索、浏览等像信息工厂一样不断的生产出各种信息,在大数据时代,我们面临如下几...一、Kafka简介本文综合了我之前写的kafka相关文章,可作为一个全面了解学习kafka的培训...原创 2016-08-03 15:50:08 · 120 阅读 · 0 评论 -
kafka参数配置详解
broker config 属性默认值描述broker.id 必填参数,broker的唯一标识log.dirs/tmp/kafka-logsKafka数据存放的目录。可以指定多个目录,中间用逗号分隔,当新partition被创建的时会被存放到当前存放partition最少的目录。port9092BrokerServer接受客户端...原创 2016-09-24 16:07:22 · 1101 阅读 · 0 评论 -
Kafka集群partitions/replicas默认分配解析
1. Kafka集群partition replication默认自动分配分析下面以一个Kafka集群中4个Broker举例,创建1个topic包含4个Partition,2 Replication;数据Producer流动如图所示:(1) (2)当集群中新增2节点,Partition增加到6个时分布情况如下:副本分配逻辑规则如下:在Kafka集群中,每个Bro...原创 2017-01-23 09:36:28 · 261 阅读 · 0 评论 -
apache kafka系列之kafka.common.ConsumerRebalanceFailedException异常解决办法
kafka.common.ConsumerRebalanceFailedException :log-push-record-consumer-group_mobile-pushremind02.lf.xxx.com-1399456594831-99f15e63 can't rebalance after 3 retriesat kafka.consumer.ZookeeperConsume...原创 2017-01-23 09:54:06 · 154 阅读 · 0 评论 -
apache kafka系列之Producer处理逻辑
Kafka Producer处理逻辑 Kafka Producer产生数据发送给Kafka Server,具体的分发逻辑及负载均衡逻辑,全部由producer维护。Kafka结构图Kafka Producer默认调用逻辑默认Partition逻辑1、没有key时的分发逻辑每隔 topic.metadata.refresh.interval.ms 的时间,随...原创 2017-01-23 10:12:13 · 373 阅读 · 0 评论 -
apache kafka系列之客户端开发-java
1.依赖包 <dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka_2.10</artifactId> <version>0.8.1</version>原创 2017-01-23 10:51:37 · 106 阅读 · 0 评论 -
apache kafka系列之迁移与扩容工具用法
kafka迁移与扩容工具使用参考官网site:https://cwiki.apache.org/confluence/display/KAFKA/Replication+tools#Replicationtools-6.ReassignPartitionsTool说明:当我们对kafka集群扩容时,需要满足2点要求: 将指定topic迁移到集群内新增的node上。将to...原创 2017-01-23 11:04:55 · 129 阅读 · 0 评论 -
Kafka Offset Storage
1.概述 目前,Kafka 官网最新版[0.10.1.1],已默认将消费的 offset 迁入到了 Kafka 一个名为 __consumer_offsets 的Topic中。其实,早在 0.8.2.2 版本,已支持存入消费的 offset 到Topic中,只是那时候默认是将消费的 offset 存放在 Zookeeper 集群中。那现在,官方默认将消费的offset存储在 Kafka 的...原创 2017-02-09 10:44:20 · 120 阅读 · 0 评论