Why am I seeing Receive failed: Disconnected? 1. broker 的空闲连接回收器关闭不活跃连接. 由 broker 的配置属性 connections.max.idle.ms 控制,默认是 10 分钟. 这是目前为止最常见的自发断开连接的原因. 2. 客户端发送了一个不支持的协议请求:这可以认为是客户端的配置错误. broker 应该记录一个关闭原因的异常日志,见 broker logs. 3. 客户端发送一个缺陷的协议请求:这表示是客户端的一个…
%3|1538976114.812|FAIL|rdkafka#producer-1| [thrd:kafka-server:9092/bootstrap]: kafka-server:9092/0: Receive failed: Disconnected%3|1538976114.812|ERROR|rdkafka#producer-1| [thrd:kafka-server:9092/bootstrap]: kafka-server:9092/0: Receive failed: Disco…
https://github.com/edenhill/librdkafka/wiki/Broker-version-compatibility如果使用了broker版本是0.8的话, 在运行例程时需要制定-X broker.version.fallback=0.8.x.y 否则无法运行 例如我的例子: 我的kafka版本是0.9.1 unzip librdkafka-master.zip cd librdkafka-master ./configure && make &&…
 最近研究producer的负载均衡策略,,,,我在librdkafka里边用代码实现了partition 值的轮询方法,,,但是在现场验证时,他的负载均衡不起作用,,,所以来找找原因: 下文是一篇描写kafka处理逻辑的文章,转载过来,研究一下. apache kafka系列之Producer处理逻辑 标签: Kafka ProducerKafka Producer处理逻辑kafka生产者处理逻辑apache kafka系列 2014-05-23 11:42 3434人阅读 评论(2) 收藏 …
Kafka Producer产生数据发送给Kafka Server,具体的分发逻辑及负载均衡逻辑,全部由producer维护. 1.Kafka Producer默认调用逻辑 1.1 默认Partition逻辑 1.没有key时的分发逻辑 每隔 topic.metadata.refresh.interval.ms 的时间,随机选择一个partition.这个时间窗口内的所有记录发送到这个partition.发送数据出错后也会重新选择一个partition 2.根据key分发 对key求hash,然…
  Kafka中操作topic时 Error: Failed to parse the broker info from zookeeper 1.问题描述   2.问题原因     kafka在启动后,会将broker的信息存放在对应的zookeeper里的zNode中,默认存放在zookeeper中的路径 /broker/ids/xxx(当然如果在kafka的server.properties文件中指定zookeeper中的路径/kafka,那么对应的zNode也会在/kafka下创建)  …
转载自 huxihx,原文链接 关于Kafka幂等producer的讨论 众所周知,Kafka 0.11.0.0版本正式支持精确一次处理语义(exactly once semantics,下称EOS).Kafka的EOS主要体现在3个方面: 幂等producer:保证发送单个分区的消息只会发送一次,不会出现重复消息 事务(transaction):保证原子性地写入到多个分区,即写入到多个分区的消息要么全部成功,要么全部回滚 流处理EOS:流处理本质上可看成是“读取-处理-写入”的管道.此EOS保…
Kafka旧版本producer由scala编写,0.9以后已经废除,但是很多公司还在使用0.9以前的版本,所以总结如下: 要注意包Producer是 kafka.javaapi.producer.Producer 这个才是java api使用的包 示例代码如下: import kafka.producer.KeyedMessage; import kafka.javaapi.producer.Producer; import kafka.producer.ProducerConfig; imp…
提示示例: ERROR Error when sending message to topic test with key: null, value: 2 bytes with error: Failed to update metadata after 60000 ms. 解决方案: 这样的问题需要修改broker的配置文件config/server.properties来解决: 1 advertised.host.name=你的IP地址(不能为hostname,一定要是IP地址.如果需要从外…
上次留下来的问题 如果消息是发给很多不同的topic的, async producer如何在按batch发送的同时区分topic的 它是如何用key来做partition的? 是如何实现对消息成批量的压缩的? async producer如何在按batch发送的同时区分topic的 这个问题的答案是: DefaultEventHandler会把发给它的一个batch的消息(实际上是Seq[KeyedMessage[K,V]]类型)拆开,确定每条消息该发送给哪个broker.对发给每个broker…
一.SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". 这个报警告的原因简单来说时因为slf4j的版本和log4j的版本不匹配. 解决办法: 1.在你的maven库中查找你的slf4j版本,若有两个,最后选版本低的,因为本人选择高版本还是报错: 2.登陆该maven库网站: https://mvnrepository.com/search?q=slf4j 3.搜索slf4j,选择SLF4J LOG4J 12…
来自:http://blog.liveramp.com/2013/04/08/kafka-0-8-producer-performance-2/ At LiveRamp, we constantly face scaling challenges as the volume of data that our infrastructure must deal with continues to grow. One such challenge involves the logging system…
问题 很多条消息是怎么打包在一起的? 如果消息是发给很多不同的topic的, async producer如何在按batch发送的同时区分topic的 它是如何用key来做partition的? 是如何实现对消息成批量的压缩的? async producer是将producer.type设为async时启用的producer 此时,调用send方法的线程和实际完成消息发送的线程是分开的. 当调用java API中producer的send方法时,最终会调用kafka.producer.Produ…
1.Producer 网络请求 1.1 Producer Client角度 KafkaProducer主要靠Sender来发送数据给Broker. Sender: 该线程handles the sending of produce requests to the Kafka cluster. 该线程发送metadata requests来更新它感知的整个集群的视图;另外,主要负责发送produce请求到相关的broker. Selector的主要目的是网络事件的 loop 循环,通过调用sele…
本文介绍如何在springboot项目中集成kafka收发message. 1.先解决依赖 springboot相关的依赖我们就不提了,和kafka相关的只依赖一个spring-kafka集成包 <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>spring-kafka</artifactId> <version>1.1.1.RELEASE<…
kafka 0.10.0.0 released   Interceptors的概念应该来自flume 参考,http://blog.csdn.net/xiao_jun_0820/article/details/38111305 比如,flume提供的 Timestamp Interceptor Host Interceptor Static Interceptor Regex Filtering Interceptor Regex Extractor Interceptor 可以对于流过的mes…
众所周知,Kafka 0.11.0.0版本正式支持精确一次处理语义(exactly once semantics,下称EOS).Kafka的EOS主要体现在3个方面: 幂等producer:保证发送单个分区的消息只会发送一次,不会出现重复消息 事务(transaction):保证原子性地写入到多个分区,即写入到多个分区的消息要么全部成功,要么全部回滚 流处理EOS:流处理本质上可看成是“读取-处理-写入”的管道.此EOS保证整个过程的操作是原子性.注意,这只适用于Kafka Streams 上面…
通过https://www.cnblogs.com/tree1123/p/11243668.html 已经对consumer有了一定的了解.producer比consumer要简单一些. 一.旧版本producer 0.9.0.0版本以前,是由scala编写的旧版本producer. 入口类:kafka.producer.Producer 代码示例: Properties properties = new Properties(); properties.put("metadata.broker…
kafka0.9版本以后用java重新编写了producer,废除了原来scala编写的版本. 这里直接使用最新2.3版本,0.9以后的版本都适用. 注意引用的包为:org.apache.kafka.clients.producer import java.util.Properties; import org.apache.kafka.clients.producer.KafkaProducer; import org.apache.kafka.clients.producer.Produce…
一些重要的参数: 1.acks指定了在给producer发送响应前,leader broker必须要确保已成功写入该消息的副本数.当前acks有3个取值,0,1,和all 2.buffer.memory:producer启动时会首先创建一块内存缓冲区用于保存待发送的消息,然后由另一个专属的线程负责从缓冲区中读取消息执行真正的发送.默认32MB.生产过快会抛异常 3.compression.type:是否压缩消息 4.retries:可重试异常充实次数,默认为0不进行重试. 5.batch.siz…
Centos版本:Centos6.4,PHP版本:PHP7. 在上一篇文章中使用IP为192.168.9.154的机器安装并开启了Kafka进行了简单测试,充当了Kafka服务器. 本篇文章新开启一台IP为192.16.9.157的机器给PHP开启扩展. 找到github的扩展下载地址,这里是php-rdkafka,虽然php有一个扩展是php-kafka,但是php-rdkafka要比php-kafka强大. https://github.com/arnaud-lb/php-rdkafka /…
Exactly-once Semantics are Possible: Here’s How Kafka Does it I’m thrilled that we have hit an exciting milestone the Kafka community has long been waiting for: we have  introduced exactly-once semantics in Apache Kafka in the 0.11 releaseand Conflue…
原文链接:Kafka深度解析 背景介绍 Kafka简介 Kafka是一种分布式的,基于发布/订阅的消息系统.主要设计目标如下: 以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间的访问性能 高吞吐率.即使在非常廉价的商用机器上也能做到单机支持每秒100K条消息的传输 支持Kafka Server间的消息分区,及分布式消费,同时保证每个partition内的消息顺序传输 同时支持离线数据处理和实时数据处理 为什么要用消息系统 解耦在项目启动之初来预测将来项目会碰到…
<dependency> <groupId>org.apache.kafka</groupId> <artifactId>kafka-clients</artifactId> <version>0.11.0.2</version> </dependency> public class KafkaProducer<K,V> extends java.lang.Object implements Pro…
Producer 最简配置 metadata.broker.list参数指定broker地址,这里不需要填上所有的broker地址,但是如果只写一个,这个broker挂掉后就无法往topic中写入信息,一般写入2-3个broker地址. serializer.class指定序列化的方式 props.put("metadata.broker.list","broker1:9092,broker2:9092,broker3:9092") props.put("…
原文地址:http://www.aboutyun.com/thread-9938-1-1.html 问题导读1.Kafka提供了Producer类作为java producer的api,此类有几种发送方式?2.总结调用producer.send方法包含哪些流程?3.Producer难以理解的在什么地方? producer的发送方式剖析Kafka提供了Producer类作为java producer的api,该类有sync和async两种发送方式.sync架构图 async架构图 调用流程如下:…
Kafka Safe Producer 在应用Kafka的场景中,需要考虑到在异常发生时(如网络异常),被发送的消息有可能会出现丢失.乱序.以及重复消息. 对于这些情况,我们可以创建一个“safe producer”,用于规避这些问题.下面我们会先介绍对于这几种情况的说明以及配置,最后给出一个配置示例. 1. acks 详述 之前我们介绍过 Kafka Producer 的 acks 有三种模式,下面我们进一步介绍一下这三种模式: 1.1.  acks = 0(no acks) 使用acks=0…
摘要:发送消息的时候, 当Broker挂掉了,消息体还能写入到消息缓存中吗? 本文分享自华为云社区<图解Kafka Producer 消息缓存模型>,作者:石臻臻的杂货铺. 在阅读本文之前, 希望你可以思考一下下面几个问题, 带着问题去阅读文章会获得更好的效果. 发送消息的时候, 当Broker挂掉了,消息体还能写入到消息缓存中吗? 当消息还存储在缓存中的时候, 假如Producer客户端挂掉了,消息是不是就丢失了? 当最新的Producer Batch还有空余的内存,但是接下来的一条消息很大…
kafka服务器搭建 kafka自身集群信息的管理以及对producer和consumer的信息管理是通过zookeeper实现的,zookeepr是kafka不可分割的一部分,所以搭建zookeeper服务器是搭建kafka集群环境不可或缺的一部分.zookeeper集群的搭建在网上有很多相关资料,本文不在详细描述,也可参照我自己编写的zookeeper 安装的三种模式搭建zookeeper集群.本文所写的kafka服务搭建方法适用于Ubuntu系统和MacOS系统(亲测). 集群搭建软件环境…
前一篇Kafka框架设计来自英文原文(Kafka Architecture Design)的翻译及整理文章,非常有借鉴性,本文是从一个企业使用Kafka框架的角度来记录及整理的Kafka框架的技术资料,也非常有借鉴价值,为了便于阅读与分享,我将其整理一篇Blog. 本文内容文件夹摘要例如以下: 1)apache kafka消息服务 2)kafka在zookeeper中存储结构 3)kafka log4j配置 4)kafka replication设计机制 5)apache kafka监控系列-监…