![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
apache kafka
文章平均质量分 51
幽灵之使
善于交际,工作自信
展开
-
apache kafka技术分享系列(目录索引)
apache Kafka中国社区中国社区QQ群1:162272557未满 收费5¥,保证QQ运营,腾讯QQ VIP收年费,2000人群非常活跃,质量很高中国社区QQ群2:414762562未满 1000人群中国社区QQ群3:191278841未满 1000人群中国社区QQ群4:415846802 未满 1000人群每当有新blog发布时,会在此处更新,欢迎大家拍砖共同成长目录索引...原创 2018-02-08 11:30:11 · 121511 阅读 · 7 评论 -
apache kafka性能测试命令使用和构建kafka-perf
Producer Setupbin/kafka-topics.sh --zookeeper esv4-hcl197.grid.linkedin.com:2181 --create --topic test-rep-one --partitions 6 --replication-factor 1bin/kafka-topics.sh --zookeeper esv4-hcl197.grid.lin原创 2014-07-06 09:55:50 · 14535 阅读 · 10 评论 -
apache kafka系列之jmx监控指标参数
Kafka使用Yammer Metrics来原创 2014-06-30 10:40:23 · 16636 阅读 · 2 评论 -
apache kafka系列之性能优化架构分析
Apache kafka性能优化架构分析,分析了那些因素会影响kafka性能。kafka内部实现做了哪些优化和处理。原创 2014-08-08 15:13:56 · 5562 阅读 · 0 评论 -
apache kafka系列之Controller设计机制和状态变化
在kafka集群中,其中一个broker server作为中央控制器,负责管理分区和副本状态并执行管理着这些分区的重新分配。下面说明如何通过中央控制器操作分区和副本的状态。名词解释:isr:同步副本组OfflinePartitionLeaderSelector:分区下线后新的领导者选举OAR:老的分配副本PartitionStateChange:其有效状态如原创 2014-06-02 15:29:19 · 7507 阅读 · 0 评论 -
apache kafka系列之在zookeeper中存储结构
1.topic注册信息/brokers/topics/[topic] :Schema:{ "fields" : [ {"name": "version", "type": "int", "doc": "version id"}, {"name": "partitions", "type": {"type": "ma原创 2014-04-15 10:57:13 · 36572 阅读 · 5 评论 -
apache kafka系列之replication设计机制
概览:其中一个broker被选举作为整个集群控制器,他将负责几个方面工作:1.管理或领导分区变化.2.create topic,delete topic3.replicas(执行复制计划,复制partition)集群控制器做出决定以后,操作信息或状态将永久注册并存储在zookeeper上,并且也可以通过RPC方式发送新的决定操作broker。控制器发布的决定原创 2014-04-25 18:48:17 · 6878 阅读 · 0 评论 -
apache Kafka概要介绍
背景介绍kafka是最初由Linkedin公司开发,使用Scala语言编写,Kafka是一个分布式、分区的、多副本的、多订阅者的日志系统(分布式MQ系统),可以用于web/nginx日志,搜索日志,监控日志,访问日志等等。kafka目前支持多种客户端语言:java,python,c++,php等等。原创 2014-04-15 10:50:02 · 35399 阅读 · 11 评论 -
Kafka数据可靠性与一致性解析
在看本篇博客前,请先看下“ Kafka文件存储机制那些事”:http://tech.meituan.com/kafka-fs-design-theory.html 便于理解如下内容:1.Partition Recovery机制每个Partition会在磁盘记录一个RecoveryPoint, 记录已经flush到磁盘的最大offset。当broker fail 重启时,会进行loadLogs。原创 2016-08-24 01:21:27 · 19549 阅读 · 1 评论 -
Kafka集群partitions/replicas默认分配解析
1. kafka集群副本分布原理分析下面以一个kafka集群中4个broker举例,1个topic分成4个partition,2 replication;数据producer流动如图所示:每个broker都有均等获得partition的leader机会。上述图broker partition中,箭头指向为副本,以partition-0为例:broker1中parition-原创 2014-12-06 20:19:54 · 47281 阅读 · 12 评论 -
Apache Kafka中Follower如何与Leader同步数据
Kafka中partition replication之间具备同步和异步复制功能,从partition的leader复制数据到follower只需要一个线程(ReplicaFetcherThread),实际上follower主动从leader拉取数据的,一个follower就相当于一个consumer。原创 2015-04-21 06:04:43 · 16174 阅读 · 4 评论 -
Mafka RoadMap和实现
Mafka SLA:Mafka消息中间件系统SLA原创 2016-08-05 01:28:31 · 2251 阅读 · 0 评论 -
Kafka Consumer机制优化-保证每条消息至少消费一次
背景Kafka中由Consumer维护消费状态,当Consumer消费消息时,支持2种模式commit消费状态,分别为立即commit和周期commit。前者会导致性能低下,做到消息投递恰好一次,但很少使用,后者性能高,通常用于实际应用,但极端条件下无法保证消息不丢失。目标在有效期内,保证每条消息至少可被消费一次问题分析 请看如上图1,Consumer Thread读取一条消息,更新缓存消费状态,原创 2016-06-21 17:27:00 · 22153 阅读 · 3 评论 -
腾讯 VS 阿里 VS 携程消息中间件设计方案及思路
背景目前我们美团正在设计和不断迭代、升级消息中间件方案,为了避免走弯路,希望站在巨头肩膀上,学习经验、吸取精华,推动美团MQ快速演进,为美团业务高速扩张提供支撑目标:可靠性(保证消息不丢失)、异步、解耦(无需同时在线、不需要知道对方是谁)。 数据的存储级别:内存中的数据(断电丢数据)===》持久化磁盘(磁盘损坏)===》冗余备份(一致性问题)业界MQ设计方案如下:1.阿里Notify架构特点:N原创 2016-06-20 01:28:45 · 12395 阅读 · 2 评论 -
线上Mafka集群网卡打爆原因分析及解决方案
1.现象Mafka线上为某个业务搭建的集群,隔几天就会偶尔出现如下报警: 每次报警均是一个网卡出流量高,一个网卡入流量高(目前设置的阈值是700Mb),而且一般在5分钟左右的时间内故障就会自动恢复: 2.原因分析简单描述:kafka 0.8 的读写锁bug,写的地方加锁了,读的地方未加锁。 具体展现:副本去请求数据的时候,出现请求的offset超出leader partitiond范围,从原创 2016-06-20 00:33:19 · 3582 阅读 · 0 评论 -
Apache Kafka消息传递可靠性分析
三点多吧原创 2015-04-08 16:02:42 · 14191 阅读 · 6 评论 -
如何在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-topics.sh原创 2015-05-21 16:42:07 · 8567 阅读 · 0 评论 -
apache kafka系列之性能测试报告(虚拟机版)
测试方法在其他虚拟机上使用 Kafka 自带 kafka-producer-perf-test.sh 脚本进行测试 Kafka 写入性能尝试使用 kafka-simple-consumer-perf-test.sh 脚本测试 Kafka Consumer 性能,但由于获取到的数据不靠谱,放弃这个测试方法性能数据注:Gzip 和 Snappy 的传输速度 MB/S 是通过压缩前数据计原创 2014-06-22 21:47:27 · 8113 阅读 · 3 评论 -
apache kafka源代码工程环境搭建(IDEA)
apache kafka源代码分析工程搭建(IDEA)原创 2014-05-24 23:48:44 · 15118 阅读 · 6 评论 -
Kafka通过timestamp获取offset的机制详解
1、入口Kafka Server 处理 Client 发送来的请求的入口在文件夹: core/src/main/scala/kafka/server类:kafka.server.KafkaApis方法: handle处理offset请求的函数: handleOffsetRequest2、处理逻辑处理逻辑主要分为四步获取partition从partition中获原创 2014-11-24 11:13:16 · 15232 阅读 · 0 评论 -
apache kafka系列之-监控指标
apache kafka中国社区QQ群:1622725571、监控目标 1.当系统可能或处于亚健康状态时及时提醒,预防故障发生 2.报警提示 a.短信方式 b.邮件2、监控内容2.1 机器监控Kafka服务器指标CPU LoadDisk IOMemory磁盘log.dirs目录下数据文件大小,要有定时清除策略2.2 JVM监控主要监控JAVA的 GC time(垃圾回收时间),JAVA...原创 2014-04-27 12:21:00 · 18462 阅读 · 9 评论 -
apache kafka监控系列-KafkaOffsetMonitor
最近kafka server消息服务上线了,基于jmx指标参数也写到zabbix中了,但总觉得缺少点什么东西,可视化可操作的界面。zabbix中数据比较分散,不能集中看整个集群情况。或者一个cluster中broker列表,自己写web-console比较耗时耗力,用原型工具画了一些管理界面东西,关键自己也不前端方面技术,这方面比较薄弱。这不开源社区提供了kafka的web管理平台KafkaOffsetMonitor.就迅速拿过来运行。大家不要着急,马上娓娓道来。原创 2014-05-27 18:15:01 · 39035 阅读 · 16 评论 -
消息队列中点对点与发布订阅区别
背景知识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,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信原创 2015-08-17 11:49:47 · 41452 阅读 · 2 评论 -
Mafka消息中间件系统SLA
1.背景2.目标从系统角度查看整体系统的可用性,包括但不局限于各种异常处理,是否做到很好的容错。主要输出包括:1.主题SLA2.消费组SLA3.集群SLA4.MQ 整体SLA3. 系统SLA3.1可用性3.1.1主题SLA承诺副本配置://TODO,需要进一步梳理,申请主题的时候,如果选择的数据类型是:支付类型或者订单类型。我们给业务配置是三副本策略,意思:如果发送收到ack(不管是同步发送还是异原创 2016-06-19 23:52:32 · 7008 阅读 · 1 评论 -
基于Kafka时间粒度消息回溯设计方案
1.背景当业务消费消息时,有时因为某些原因(bug、异常、依赖服务故障等)导致消费全部无效,需要回溯消息进行消费,比如消费者2个小时内的处理逻辑可能出现了问题,业务发现后,想回溯到2小时前offset位置重新消费补回相关消息。 ![这里写图片描述](http://img.blog.csdn.net/20160903225351996 =100x100)2.总体设计概述3.详细设计2.1 Kafka原创 2016-09-03 23:51:07 · 10628 阅读 · 4 评论 -
Kafka副本同步机制理解
构建操作简单的分布式系统,尤其是对微妙的行为,最好的一门艺术是经常收集生产环境经验。Apache Kafka的普及在很大程度上归功于它的设计和操作简单。Apache Kafka更微妙的特性之一是它的复制协议。对于单个集群不同大小工作负载情况下如何自动调优Kafka副本的工作比较棘手。这个特别困难的挑战之一是知道如何避免follower进入和退出同步副本列表(即ISR)。从用户的角度来看,如果生产者发原创 2016-06-20 01:50:59 · 50288 阅读 · 13 评论 -
Apache Kafka-0.9 feature
一、安全特性在0.9之前,Kafka安全方面的考虑几乎为0,在进行外网传输时,只好通过Linux的防火墙、或其他网络安全方面进行配置。相信这一点,让很多用户在考虑使用Kafka进行外网消息交互时有些担心。在安全方面,主要有以下方面设计: 客户端连接borker使用SSL或SASL进行验证 borker连接ZooKeeper进行权限管理 数据传输进行加密(需要考虑性能方面的影响) 客户端读、写原创 2016-08-27 06:03:23 · 1511 阅读 · 2 评论 -
Kafka Producer机制优化-提高发送消息可靠性
名称解释:Broker:负责消息的存储和转发,也可以叫消息中介节点 Topic:每种消息的分类叫做主题(Topic)。 Partition:每一个Topic被切分为多个Partitions。背景Producer构造Message对象时,传入key参数,当Producer发送Message,会根据key确定目标Partition,当Kafka集群中某个Partition所有存活的节点都失效或挂掉。原创 2016-08-27 00:45:20 · 9525 阅读 · 0 评论 -
Kafka内部网络框架模型分析
Kafka基于高吞吐率和效率考虑,并没有使用第三方网络框架,而且自己基于java nio封装的,总体网络模型如下: Broker的内部处理流水线化,分为多个阶段来进行(SEDA),以提高吞吐量和性能,尽量避免Thead盲等待,以下为过程说明。 * Accept Thread负责与客户端建立连接链路,然后把Socket轮转交给Process Thread * Process Thread负责原创 2016-08-27 00:15:26 · 7444 阅读 · 1 评论 -
Kafka Broker HA机制
从图中我们可以看出HA的缓存分为生产缓存事件池和拉取缓存事件池两块结构相同的缓存区,分别缓存生产和拉取请求 2个缓存事件池的作用:生产缓存事件池:当生产者设置了等待从partition的同步选项(requiredAcks为-1)时才会启动生产缓存。因为每一批生产的消息,需要等待所有的处于同步状态的从partition(in-sync)同步成功,在所有follow partition上报自己的水位原创 2016-08-25 07:03:50 · 7757 阅读 · 1 评论 -
kafka server部署配置优化
具体请参考:apache kafka中server.properties配置文件参数说明配置优化都是修改server.properties文件中参数值1.网络和io操作线程配置优化# broker处理消息的最大线程数num.network.threads=xxx# broker处理磁盘IO的线程数num.io.threads=xxx建议配置:一般nu原创 2014-12-26 23:44:58 · 11092 阅读 · 2 评论 -
apache Kafka Replication设计分析
1.设计目标提供可配置,需要保障强可用性可以enable这个功能,如果想要更高的效率而不太在乎数据丢失的话,可以disable这个功能 自动replica管理,当cluster发生变化时,即broker server增加或减少时,可以自动的管理和调整replicas2.问题如何将partition的replicas均匀的分配到各个broker servers上面? 如何进行replicas同原创 2016-09-03 23:18:44 · 4440 阅读 · 1 评论 -
apache kafka系列之kafka.common.ConsumerRebalanceFailedException异常解决办法
afka.common.ConsumerRebalanceFailedException: log-push-record-consumer-group_mobile-pushremind02.lf.sankuai.com-1399456594831-99f15e63 can't rebalance after 10 retriesat kafka.consumer.ZookeeperCons原创 2014-05-08 14:02:17 · 29314 阅读 · 0 评论 -
apache kafka源码分析走读-ZookeeperConsumerConnector分析
ZookeeperConsumer类中consumer运行过过程架构分析原创 2014-08-09 17:49:45 · 8605 阅读 · 0 评论 -
kafka LeaderNotAvailableException
LeaderNotAvailableException原创 2014-06-28 23:42:02 · 11268 阅读 · 0 评论 -
如何在Kafka中对Topic的leader进行均衡
参考操作背景在创建一个topic时,kafka尽量将partition均分在所有的brokers上,并且将replicas也j均分在不同的broker上。每个partitiion的所有replicas叫做"assigned replicas","assigned replicas"中的第一个replicas叫"preferred replica",刚创建的topic一般"p原创 2014-11-24 10:50:44 · 16543 阅读 · 0 评论 -
Consumer rebalance失败问题定位和解决思路
背景最近在公司使用Kafka的Consumer高级API出现一些问题,问题描述如下: 大象push推送队列,在(大约每天8点到10点间)发送消息高峰期,消费节点负载处于高位、jvm内存占用大于%80。这时候JVM会频繁持续FullGC而卡住异步线程(stop the world),心跳等异步线程就没法正常收发数据包。这种情况下导致zk会话过期触发Consumer rebalance,zk会话过期原创 2015-11-02 17:47:04 · 16653 阅读 · 2 评论 -
基于Kafka如何部署一个稳定可靠的zookeeper集群服务
背景一个月左右zk挂了2次,在此期间 Mafka和其他服务不可用,因为业务(使用不当)原因导致zk挂掉,间接影响其他服务(包括mafka)可用性,目前线上多个业务和多种服务共同一套mobile-zk集群, 只要一个业务使用不当,对zk造成影响或不可用,就会影响其他业务,所以现阶段拆分zk集群,做物理隔离,把mobile-zk集群按照业务分拆为多个zk集群。为mafka服务建立独立zk集群。问题2原创 2015-11-03 16:49:24 · 8721 阅读 · 2 评论 -
kafka-0.8.2.1-src编译报错解决办法
今天编译kafka-0.8.2.1-src源代码,发现一个问题。编译始终报错,错误如下:lizhitao@users-MacBook-Pro-2:~/mt_wp/open_source/kafka-platform/kafka-0.8.2.1-src$ gradle jar_core_2_10_4 --stacktraceTo honour the JVM settings for this bu原创 2015-07-12 00:23:12 · 8098 阅读 · 0 评论 -
Kafka 0.8.2 新的offset管理
之前Kafka存在的一个非常大的性能问题(隐患)就是利用ZK来记录各个Consumer Group的消费进度。当然JVM Client帮我们自动做了这些事情,但是Consumer需要和ZK频繁交互,而利用ZK Client API对ZK频繁写入是一个低效的操作,并且从水平扩展性上来讲也存在问题。所以ZK抖一抖,集群吞吐量就跟着一起抖,严重的时候简直抖的停不下来。 当然某些非JVM端的API压根就不转载 2015-02-05 17:06:42 · 9301 阅读 · 3 评论