04 2018 档案

kafka生产者网络层总结
摘要:1 层次结构 负责进行网络IO请求的是NetworkClient,主要层次结构如下 ClusterConnectionStates报存了每个节点的状态,以node为key,以node的状态为value;inFlightRequets中保存了每个节点已经发送的请求,但是还没有返回的请求,以 阅读全文

posted @ 2018-04-30 22:21 吼吼吼的吼 阅读(400) 评论(0) 推荐(0)

Linux文件的时间
摘要:1 概念 Linux的文件时间有三种 1. access time. atime, 是文档最后一次被读取的时间。cat、more 、less、grep、sed、tail、head这些命令都会修改文件的access时间。 2. modify time. mtime, 是文档内容被修改的时间。vim 阅读全文

posted @ 2018-04-26 22:54 吼吼吼的吼 阅读(440) 评论(0) 推荐(0)

kafka producer的batch.size和linger.ms
摘要:1.问题 batch.size和linger.ms是对kafka producer性能影响比较大的两个参数。batch.size是producer批量发送的基本单位,默认是16384Bytes,即16kB;lingger.ms是sender线程在检查batch是否ready时候,判断有没 阅读全文

posted @ 2018-04-21 17:20 吼吼吼的吼 阅读(15871) 评论(0) 推荐(2)

kafka producer 源码总结
摘要:kafka producer可以总体上分为两个部分: 1. producer调用send方法,将消息存放到内存中 2. sender线程轮询的从内存中将消息通过NIO发送到网络中 1 调用send方法 其实在调用new KafkaProducer初始化一个producer实例的时候,已经初 阅读全文

posted @ 2018-04-21 15:04 吼吼吼的吼 阅读(684) 评论(0) 推荐(0)

kafka客户端打印日志
摘要:kafka 0.10.0 java客户端使用slf4j作为日志门面,需要我们加入具体的日志实现依赖才能打印日志,日志框架:http://www.cnblogs.com/set cookie/p/8836496.html 1 客户端依赖jar包 使用命令 mvn dependency:tree 阅读全文

posted @ 2018-04-14 23:31 吼吼吼的吼 阅读(5076) 评论(0) 推荐(0)

日志框架总结
摘要:1 日志框架简介 (参考:http://xfhnever.com/2015/09/20/log java 2/) 各种日志框架可以分为两类: 1. 日志实现框架:jdk自带的logging(jul),log4j1、log4j2、logback 2. 日志门面,即提供统一的接口不提供实现:ap 阅读全文

posted @ 2018-04-14 23:10 吼吼吼的吼 阅读(643) 评论(0) 推荐(0)

双重检验锁思考
摘要:最近在项目中写一个池子,用到了双重检验锁,联想到单例模式的双重检验锁。 1 单例模式 下面是一个懒加载的单例模式 需要判断两次instace == null是因为 1. 第一次为了减少锁了粒度,因为只有在instance == null的时候才需要上锁,其他情况可以直接返回 2. 第二次获取锁后 阅读全文

posted @ 2018-04-13 01:11 吼吼吼的吼 阅读(515) 评论(0) 推荐(0)

生产者消费者和虚假唤醒
摘要:1 定义 虚假唤醒,即spurious wakeups。wait需要在while循环内使用,原因就是因为存在虚假唤醒。 2 Monitor 还是放上这个神图来复习下线程间通信 线程在竞争锁失败的情况下会放到Entry Set中,图中2表示线程可以获取锁 获取到锁的线程可以调用wait方法,让线程 阅读全文

posted @ 2018-04-06 21:07 吼吼吼的吼 阅读(535) 评论(0) 推荐(0)

JAVA DAEMON线程的理解
摘要:java线程分两种:用户线程和daemon线程。daemon线程或进程就是守护线程或者进程,但是java中所说的daemon线程和linux中的daemon是有一点区别的。 linux中的daemon进程实际是指运行在后台提供某种服务的进程,例如cron服务的crond、提供http服务的httpd 阅读全文

posted @ 2018-04-06 17:15 吼吼吼的吼 阅读(373) 评论(0) 推荐(0)

jvm参数总结
摘要:之前一直对jvm参数都是现学现用,对有些地方没有总结,比如 XX 和 X有什么区别,无意中看到oracle的官网对于jvm参数的介绍,下面做个简单的总结和翻译。 首先献上oracle官方链接: 1. http://www.oracle.com/technetwork/java/javase/ 阅读全文

posted @ 2018-04-06 13:41 吼吼吼的吼 阅读(735) 评论(0) 推荐(0)

读懂jstack
摘要:1 jstack jstack是JDK自带的一种线程栈跟踪工具,用于生成java虚拟机当前时刻线程快照。在定位线程卡顿、死锁、block等原因的时候非常有用。使用方法是: jstack [ l] pid 2 Monitor Monitor是java中用以实现线程同步和互斥的主要手段,每一个对象有且只 阅读全文

posted @ 2018-04-06 12:21 吼吼吼的吼 阅读(1013) 评论(1) 推荐(0)

PRODUCER配置加载
摘要:1.入口 Kafka通过new一个KafkaProducer将配置项进行加载。将用户定义的properties作为参数,构造成一个ProducerConfig对象。 2.ProducerConfig ProducerConfig保存的是生产者的全部配置项,这里包括用户自定义的和默认的配置项。实际上, 阅读全文

posted @ 2018-04-01 12:29 吼吼吼的吼 阅读(292) 评论(0) 推荐(0)

为什么WAIT必须在同步块中
摘要:我们知道java的Object有wait和notify方法,如果要使用wait和notify的话,那么必须在synchronized块中,否则会抛出IllegalMonitorStateException。但是为什么必须在同步块中调用呢?直接wait,然后在notify不行吗?我一直存在这样的疑问, 阅读全文

posted @ 2018-04-01 12:22 吼吼吼的吼 阅读(5711) 评论(0) 推荐(0)

导航