
Kafka及源码
Kafka源码学习与原理深入
pub.ryan
专注于大数据
展开
-
深入Kafka源码05:生产者Producer之send线程详细分析
到目前为止,主线程通过KafkaProducer.send()将消息放入RecordAccumulator中缓存,并没有实际的网络IO操作。网络的IO操作是通过Sender线程统一进行的。1、Sender线程发送消息的流程:根据RecordAccumulator缓存情况,筛选出可以向哪些Node节点发送消息 根据生产者各个节点的连接情况(由NetworkClient管理),过滤Node节点 生成相应网络请求 调用NetworkClient将请求发送出去。Sender实现了Runnable原创 2020-11-23 18:06:04 · 776 阅读 · 0 评论 -
深入Kafka源码04:生产者Producer之序列化、Partitions、RecordAccumulator、高并发下的map结构、内存池原理与内存分配回收
1、send步骤二:序列化与反序列化客户端发送的消息的key和value都是byte数组,而kafka中提供了相应的接口与不同类型序列化实现若需要自定义序列化器,则只需要实现对应的Serializer中的configure方法,选择相应的编码方式即可实现序列化了此处省略……2、Partitioner...原创 2020-11-22 21:58:41 · 326 阅读 · 0 评论 -
深入Kafka源码03:生产者Producer之send方法核心流程、项目异常体系构建、send步骤一之元数据拉取加载过程
1、Kafka的元数据:元数据在Kafka中是很原创 2020-11-22 17:06:55 · 547 阅读 · 0 评论 -
深入Kafka源码02:生产者Producer原理与初始化源码分析、一些常用的元数据及数据结构信息
1、生产者Producer1.1 发送消息Demo位置:java\kafka\examples\Producer.java生产者往Kafka发送消息:步骤: 1、初始化生产者类,配置Brokers源 2、准备消息并不断开始发送消息 3、利用异步或同步发送消息,若是异步,重写回调函数,处理消息返回与发送状态;若是同步,则发送完后等待消息返回值,可能会产生阻塞 4、由于生产者是一个不断发送消息机制,不需要关闭//消息生产者public...原创 2020-11-22 16:42:59 · 489 阅读 · 0 评论 -
深入Kafka源码01: 入门、Kafka2.0源码搭建(Gradle配置)
1、基本概念http://kafka.apache.org/kafka是Scala开发的,多分区、多副本且基于zookeeper协调的分布式消息系统定位:分布式流式处理,高吞吐、可持久化、可水平扩展、支持流式处理2、源码环境搭建2.1 环境准备:环境:jdk1.8 scala2.12(2.13上坑较多)kafka2.0 gradle4.9(由于坑太多,已换为gradle4.9,以后再也不敢用新版的坑了,踩坑花了不少时间)gradle所有版本下载:https://s..原创 2020-11-17 14:09:49 · 814 阅读 · 0 评论 -
Kafka-2 集群安装配置与使用
1、安装配置依赖于zookeeper若之前安装过必须把zookeeper中的信息清除干净,以及日志的存储位置目录删除,集群中也必须删除。zookeeper中删除:brokers,cluster,contoller_epoch, isr_change_notification,consumers,latest_producer_id_block,config等...原创 2020-11-13 15:34:55 · 392 阅读 · 0 评论 -
Kafka-1 基础知识与应用场景、基本结构
1、Kafka用来做什么一个分布式消息中间件,支持分区、多副本、多订阅者的,基于zookeeper协调的分布式消息系统。它的主要作用类似于蓄水池,起到一个缓冲作用:异步、削峰、解耦1.1 异步:多线程同时处理复杂并发请求你可以去干其他的事情,过段时间来拿处理结果pay(info);new Thead(new Runnable(info){ 优惠券 积分 短信}1.2 解耦:利用消息,将发送消息与消息接收分离1.3 削峰...原创 2020-11-13 12:32:34 · 215 阅读 · 0 评论