摘要: 消费者拉取消息并处理主要有4个步骤: 获取消费者所拉取分区的偏移位置OffsetFetchRequest(新的消息是从偏移位置开始的) 创建FetchReqeust,生成Map<Node, FetchRequest>,以消费者所拉取消息的节点为key来分组,所消费的TopicPartition的数据 阅读全文
posted @ 2018-10-22 17:35 黎明踏浪号 阅读(5333) 评论(0) 推荐(0)
摘要: 重新按泳道方式整理了一下producer sender线程的活动图,大致描述了主要的过程 leastLoadedNode 的说明: 首先从现有的broker节点列表中随机选择一个节点,以此为起点循环所有的节点 如果某个节点当前飞行队列请求数为0,且节点是连接状态,则选择此节点,退出循环 否则寻找飞行 阅读全文
posted @ 2018-08-10 16:49 黎明踏浪号 阅读(1209) 评论(1) 推荐(0)
摘要: 在使用kafka producer API时,主要有2个过程:创建producer实例过程,调用producer实例发送数据(同步/异步)过程,其实在创建producer实例的同时,也创建了一个sender线程,sender线程不断轮询更新metadata及从accumulator中读取数据并真正发 阅读全文
posted @ 2018-08-06 17:29 黎明踏浪号 阅读(1308) 评论(1) 推荐(0)
摘要: Kafka客户端包括producer及consumer API,通过在wireshark中查看所捕获的请求,能更好的理解从producer及consumer到broker的网络连接过程。对于producer端,为了发送数据,需要建立client到broker节点的TCP长连接,此长连接可用于更新me 阅读全文
posted @ 2018-07-20 16:03 黎明踏浪号 阅读(3120) 评论(0) 推荐(0)
摘要: 对于KafkaConsumer而言,它不像KafkaProducer,不是线程安全的,状态是在consumer中维护的,所以实现时要注意多线程的使用,一般有2种使用方法: 1:每个Consumer有自己的线程,consumer去拉取数据,并对数据处理,这种方式比较简单,易于实现,容易保持对消息的顺序 阅读全文
posted @ 2018-07-02 15:04 黎明踏浪号 阅读(1366) 评论(1) 推荐(0)
摘要: 自定义反序列化类: 对于自定义的avro schema结构,需要有自定义的类在consumer时反序列化,反序列化类实例在consumer构造的时候通过参数传入 public class AvroWithSchemaSpecificDeser<T,E> implements Deserializer 阅读全文
posted @ 2018-06-29 11:31 黎明踏浪号 阅读(1918) 评论(1) 推荐(0)
摘要: 在使用Kafka发送接收消息时,producer端需要序列化,consumer端需要反序列化,在大多数场景中,需要传输的是与业务规则相关的复杂类型,这就需要自定义数据结构。Avro是一种序列化框架,使用JSON来定义schema,shcema由原始类型(null,boolean,int,long,f 阅读全文
posted @ 2018-06-20 15:05 黎明踏浪号 阅读(17710) 评论(0) 推荐(0)
摘要: 问题 在公司的产品开发中,存在多个团队负责产品的不同子系统,数据从上游进入系统,然后流向下游应用,每个子系统相互独立,是通过数据串在一起,在这种场景下,如果以传统的思维方式,可能是调用下游提供的WebAPI来post数据,也可能是上下游共用相同的数据库,不仅使得上下游耦合紧密,而且难以横向扩展,提高 阅读全文
posted @ 2018-06-11 17:26 黎明踏浪号 阅读(1112) 评论(0) 推荐(0)
摘要: 在前一篇文章《Win7 下使用spark 对文件进行处理》中,搭建了一个win7的开发测试环境,生成了一个jar执行包,并能够成功的在本机以多线程方式调试及运行,但将这个包分发到linux spark集群上,以standalone方式运行时,却报如下异常: 18/05/22 17:13:22 ERR 阅读全文
posted @ 2018-05-23 10:51 黎明踏浪号 阅读(5979) 评论(0) 推荐(0)
摘要: Spark是由加州大学伯克利分校的AMPLab于2009年开发,并于2014年成为Apache的顶级项目,其本身是一个基于内存的分布式处理框架,能够处理批运算,在Spark Streaming模块的支持下,也可以用于流式实时处理,Spark从一开始便是作为一个生态系统出现,是一个通用的计算框架,本文 阅读全文
posted @ 2018-05-07 16:40 黎明踏浪号 阅读(712) 评论(0) 推荐(0)