- 博客(10)
- 收藏
- 关注
原创 Kafka - 从消息堆积谈谈应用服务的消费者模型
1. 如何设置partition和consumer的数量2. 项目中需要用到大量partition和consumer,容易导致高CPU,IO,如何优化3. 出现consumer在commit offset失败等导致应用不稳定的情况如何应对
2020-10-19 01:01:07 409
原创 Canal 丢失数据与解决方法
0 背景我在生产环境使用canal的时候,由于用的是嵌入式模式,所以经常需要发版重启。每次发版的时候,canal监控的数据库是有数据持续写入的,在这个过程中,下游的消费者时常提出数据存在丢失的情况,那么下面通过分析canal的源码寻找数据丢失的原因。1 Canal 消费流程源码分析略过一些启动过程,直接找到消费binlog的主流程代码,是AbstractEventParser类的start函数中,会启动一个子线程parseThread,在run函数中,有几个点需要注意:初始化上次消费的Positi
2020-07-06 01:48:49 8786 9
原创 Lucene源码分析 - CompressingStoredFieldsWriter 文档列写入
Lucene源码分析 - BKDWriter 存储kd树
2020-06-24 18:47:49 309
原创 Lucene源码分析 - MinShouldMatchSumScorer
本文的代码以lucene-core 6.3.0为准,包含MinShouldMatchSumScorer的iterator函数和执行原理。转载请注明出处。0 基本信息MinShouldMatchSumScorer类会遍历出所有scorers的迭代器中的docId,保证docId在所有迭代器中出现的次数至少是minShouldMatch次。lead变量是链表,存的是位置停留在docId的迭...
2019-03-19 00:20:05 509 2
原创 Lucene源码分析 - BlockTreeTermsWriter 存储词典(Term Dictionary)与索引(Term Index)
本文的代码以lucene-core 6.3.0为准,包含BlockTreeTermsWriter的bufferSkip函数,writeSkip函数等整个类所有代码的解析。转载请注明出处。0 基本信息 BlockTreeTermsWriter类将倒排索引存到磁盘,先了解下这个类的基本信息:1 源码分析 write函数将segment中的每个非IndexOptions....
2019-03-12 16:41:01 2478 1
原创 Lucene源码分析 - Lucene50PostingsFormat 倒排索引简介
本文的代码以lucene-core 6.3.0为准,倒排索引的基本信息和Lucene50PostingsFormat 等整个类所有代码的解析。转载请注明出处。 在lucene中,有相当多的时候需要存正整数的数组,当这个数组比较大的时候,就把它分一个个的block,每个block包含固定数量的整数,然后把每个block用PackedInts来压缩,为了达到压缩的效果,每个元素都存它本身...
2019-03-08 23:02:00 785
原创 Lucene源码分析 - Lucene50PostingsWriter 存储倒排索引
本文的代码以lucene-core 6.3.0为准,包含Lucene50PostingsWriter存储倒排索引的方式等整个类所有代码的解析。转载请注明出处。 Lucene50PostingsWriter类将倒排索引存到磁盘,先了解下这个类的基本信息:倒排表是以field为单位,也就是每个field都会写倒排表。docOut,posOut,payOut是三个文件的文件描述符。...
2019-03-08 12:48:24 871
原创 Lucene源码分析 - Lucene50SkipWriter 构建跳表
本文的代码以lucene-core 6.3.0为准,包含Lucene50SkipWriter的bufferSkip函数,finish函数等整个类所有代码的解析。转载请注明出处。
2019-03-07 22:12:29 740
原创 Lucene源码分析 - FST
lucene的FST的二进制存储和查询方式都是由FST这个类来实现。如果要读这些代码,首先需要了解这个类里面的一些基本的东西。
2019-03-01 19:37:12 4720 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人