自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(10)
  • 资源 (1)
  • 收藏
  • 关注

原创 《kafka producer学习笔记9》-NetworkClient

一InFlightRequests 上一篇我们整理了《kafka producer学习笔记8》-NIO,本篇其实对于producer而言,所剩不多了,主要就是networkclient了。有必要先补充下InFlightRequests,InFlightRequests队列的作用是缓存已经发出去但没有收到响应的ClientRequest。其底层是通过一个Map<String,Dequ...

2019-03-31 00:01:55 1508

原创 《kafka producer学习笔记8》-NIO

一 序 首先感谢王昊@二代的书,他要去阿里了,祝他早日大富大贵。回到正题,kafka关于NIO这一块的代码,我大概断断续续看了几天,觉得还是看起来吃力,主要是NIO这块底层的都忘了,所以一般都使用像netty的框架屏蔽底层的细节,让上层业务只需要监听端口,建立连接、接受请求、处理请求、写返回就可以了。kafka为啥没用现成的netty而是自己封装接口呢?网上看了段介绍:Perform...

2019-03-27 23:51:40 897

原创 一种第N个红包最大实现的方式

一 序 需求背景:常叫外面的同学对于美团或者饿了么的那种在微信群里分享的,第N个红包最大的领红包的营销模式很熟悉了。我们有类似的需求,其实N是后台可以配置的。营销规则有: 预算金额,有个范围。 第N个最大,N的范围配置。 最大金额:有个配置范围。 ...

2019-03-18 18:58:42 524

原创 《kafka producer学习笔记7》-sender1

一 序通过上一篇的分析《RecordAccumulator(3)》我们知道,主线程通过KafkaProducer.send()方法将消息放入RecordAccumulator中缓存,并没有实际的网络I/O操作。网络操作是由Sender统一进行的。sender发消息的大概流程。用RecordAccumulator.ready()方法,根据RecordAccumulator的缓存情况,筛选...

2019-03-15 00:38:26 827

原创 《kafka producer 学习笔记6》RecordAccumulator(3)

一RecordAccumulator分析完MemoryRecords,ProducerBatch以及BufferPool,再来看RecordAccumulator:1.1 字段/** * This class acts as a queue that accumulates records into {@link MemoryRecords} * instances to be...

2019-03-08 23:45:32 985

原创 《kafka producer 学习笔记5》RecordAccumulator(2)

一BufferPool 上一篇已经整理了ProducerBatch,本文继续看BufferPool。ByteBuffer的创建和释放时比较消耗资源的,池化的目的是降低创建和销毁时间,提升执行效率,即将原来的创建和销毁时间降为从池中获取和归还入池的时间。为了实现内存的高效利用,Kafka客户端使用BufferPool来实现ByteBuffer的复用。在package org.apache.k...

2019-03-07 19:53:01 398

原创 《kafka producer 学习笔记4》-RecordAccumulator

一 序 这两天看这块代码看的头大,比之前预想的要复杂。回头一想这也可理解,因为又要高性能设计,还是线程安全的。很值得看看。接着前面的send()方法,在消息选择完分区之后,就是往暂存到RecordAccumulator队列中。然后主线程就可以从send()方法返回了。其实这时候消息没有真正的发送给kafka,之后业务线程通过KafkaProducer.send()方法不断向Recor...

2019-03-06 22:01:08 652

原创 kafka producer 学习笔记3 partitioner

一partioner还是沿着send去看,其中本篇partioner会简单介绍,下一篇重点整理RecordAccumulator。 byte[] serializedKey; try {//序列化key serializedKey = keySerializer.serialize(record.topic(), record....

2019-03-06 15:35:58 336

原创 kafka producer 学习笔记2-集群元数据metadata更新

一 序 上一篇在介绍producer的核心方法dosend ,send除了拦截器外,第一步就是要获取集群信息, clusterAndWaitTime = waitOnMetadata(record.topic(), record.partition(), maxBlockTimeMs); 因为dosend本身流程较长,所以本篇主要围绕kafka的集群元数据...

2019-03-03 11:20:20 11474

原创 kafka producer 源码学习1

一 producer的原理 上一篇《kafka新版本功能》已经有关于producer的简介了。本篇就从producer的源码开始看。大概思路是以发送的方法send为主线,去梳理整个过程。1.1 ProducerIntercptor对消息进行拦截1.2 Serialzer对key和value进行序列化1.3 Partitioner对消息选择合适的分区1.4 RecordA...

2019-03-01 00:03:13 561

JS权威指南(第四版)学习笔记.doc

以前看javascript权威指南(第四版)pdf资料时写的.希望给跟自己一样初学js的人有点帮助.其实实践最重要.

2007-09-19

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除