- 博客(6)
- 收藏
- 关注
原创 Kafka——SocketServer分析
上文讲到Sender 线程把消息封装成 ClientRequest 之后放入 selector 的 send 字段在由其 poll 方法进行发送消息。那么在 KafkaServer 中则是通过 SocketServer 接受消息并且进行处理。并采用了 Reactor 模式现在我们来看一下 SocketServer 它的模型是一个 endpoint 绑定一个 Acceptor 对应多个 Proc...
2019-04-12 10:28:40 982
原创 Kafka——Sender 线程分析
对于 RecordAccumulator 的理解,当不断有新的消息被加入之后,使得它的 batch 满了或者说创建了新的 batch 那么它就会唤醒 sender 线程将消息进行逐一的发送。这是本人花了一些时间整理的 Sender 线程的 UML 图:整体的调用流程图中都有明确的注释,接下来逐一进行分析:首先我们来看一下 sender 类,它实现了 runnable 接口,执行单独死循环的...
2019-04-08 23:23:23 1192
原创 Kafka——kafkaProducer 分析
由于本人最近在学习 kafka,看了kafka 的源码解析以及厮大的深入理解 kafka 之后决定自己在源码 debug 更加深入的学习 kafka。先从 producer 看起:运行 zookeeper,kafka server, producer 之后。在控制台随意输入一条消息进行 debug。首先他会把消息封装成 ProducerRecord主要的6个参数:headers:可以...
2019-04-03 14:29:33 634
原创 Confluent jdbc connecct 源码解析
Source 的流程图在 findBestFor()方法里:会根据传入的 url 匹配对应的 dialect 这里采用了多态的模式取代了 if-else,还采用了score 的概念避免一个 url 可能会和多个 dialect 进行匹配。根据 score 最高的决定采用哪个 dialectdialect:一个数据库对应一个 dialect,是数据库的一些特有的规则。...
2019-03-25 10:56:28 306 1
翻译 虚拟机类加载----案例
从脉脉上看到一个问题运行结果:理由:在整个 JVM 运行过程中赋值只有在准备阶段和初始化阶段准备阶段:是分配内存并设置类变量初始值的阶段,所以此类中 test为 null,b 为0初始化阶段:执行类构造器(类构造器是编译器收集所有静态语句块和类变量的赋值语句按语句在源码中的顺序合并生成类构造器,对象的构造方法是(),类的构造方法是(),可以在堆栈信息中看到),因此执行的第一条静态变量的...
2019-03-15 16:05:10 131
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人