Kafka生产者源码浅析(三)
Kafka生产者源码浅析(三) 回顾 在doSend方法中,最后几行代码是在消息添加进内存缓冲区之后,判断是否有可发送的消息,并唤醒了Sender线程 那么sender线程又是如何发送的呢 猜想: 先拿到缓冲区中待发送的所有消息,找到每个partition leader所在的broker topi ...
阅读更多
ElasticSearch7.2 实现数据自动冷热分离
冷热分离 在基于时序数据中,我们总是关心最近产生的数据,例如查询订单通常只会查询最近三天,至多到最近一个月的,查询日志也是同样的情形,很少会去查询历史数据,也就是说类似的时序数据随着时间推移,价值在逐渐弱化。在es中经常按日或按月建立索引,我们很容易想到,历史索引被查询命中的概率越来越低,不应该占用 ...
阅读更多
Kafka生产者源码浅析(二)
Kafka生产者源码浅析(二) 上篇文章中对Spring-kafka源码做了追踪,也对原生的KafkaProducer做了部分解析,对关键类事先说明,帮助读者理解源码,克服对源码的恐惧心理 doSend的方法很长,我们分部拆解 1234567891011121314151617181920212 ...
阅读更多
Kafka生产者源码浅析(一)
Kafka生产者源码浅析(一) 本文并没有直接使用原生的kafka-client,而是spring-kafka,版本为2.2.3.RELEASE。在当前以Spring-boot为首的潮流中,有必要学习Spring是如何集成kafka客户端的 send方法 以KafkaTemplate#send方 ...
阅读更多
Spring IOC容器之解析并注册BeanDefinition
前言 ConfigurationClassPostProcessor作为当前唯一的BeanFactoryPostProcessor,而且还是一个特殊的BeanDefinitionRegistryPostProcessor(继承自BeanFactoryPostProcessor)。 按前文所说,先执行 ...
阅读更多
Spring IOC容器之refresh流程(一)
前言 上文讲到了AnnotationConfigApplicationContext初始化的前两步,本文开始重点讲解第三步refresh。 类图 AbstractApplicationContext是所有ApplicationContext实现类的抽象接口,在它的refresh方法中抽象出了绝大部分 ...
阅读更多
SpringMVC源码分析
曾经debug了一次SpringMVC的源码,但是平时比较忙(lan),一直没有放在博客上,现在忙里偷闲整理上来 DispatcherServlet#doDispatch方法分析 查找HandlerExecutionChain,它的名称为mappedHandler 遍历HandlerMappi ...
阅读更多
ElasticSearch7.2 父子文档
写这篇文章的目的是为了帮助大家了解7.2版本中的父子文档,之前希望通过百度的博客快速了解一下,然而大失所望,建立索引的语法在7.2版本没有一个能通过,决定仔细看一遍官方文档 建立父-子文档语法 首先看一下如何建立父子文档,明显和网上"_parent"的方式不一样,说明es后期 ...
阅读更多
spring-boot原理之@EnableXxx注解的实现
Spring boot各种领人眼花缭乱的starter层出不穷,它实现了各种组件与spring的集成,本文以spring-cloud-openfeign 2.2.0版本为例,介绍@EnableXxx注解的实现原理 准备 注 由于有包扫描相关,本文约定包名为com.ttyc,启动类名为MainAp ...
阅读更多
跳表的研究与实现
跳表的基本原理介绍我是从极客学院王争老师的课程中了解到的,由于其实现相比红黑树简单,并且有与之媲美的性能,便想要实现一下,但纸上得来终觉浅,实际编码过程中遇到了不少的困难,希望本文对大家实现跳表有所帮助。 原理 待补充,可先移步至csdn相关博客,内容和王争老师文章差别不大 实现 本文采用jav ...
阅读更多