RSS

Posts in 2022

  • ES 分布式原理Node篇

    2022-04-27 in NoSQL

    ES集群构成 配置文件 conf/elasticsearch.yml node.master: true node.data: false 当node.master为true时,其表示这个node是一个master的候选节点,可以参与选举,在ES的文档中常被称作 master-eligible node,类似于Leader和Candidate的关系。当node.data为true时,这个节点作为一个数据节点,会存储分配在该node上的shard的数据并负责这些shard的写入、查询等。此外,任何 …

    更多

  • ES 查询性能

    2022-04-27 in NoSQL

    Lucene查询原理 Lucene的数据结构 FST 保存term字典,可以在FST上实现单Term、Term范围、Term前缀和通配符查询等 对字符串范围/前缀/通配符查询,Lucene会从FST中获取到符合条件的所有Term,然后就可以根据这些Term再查找倒排链,找到符合条件的doc。FST相关的字符串查询要比倒排链查询慢很多(以上10倍) 倒排链 保存了每个term对应的docId的列表,采用skipList的结构保存,用于快速跳跃 对单个词条进行查询,Lucene会读取该词条的倒排链, …

    更多

  • G1 GC 算法

    2022-02-18 in Java

    更多

  • Flink 简介

    2022-02-18 in BigData

    概述 Apache Flink是一个开源的分布式,高性能,高可用,准确的流处理框架。同时支持实时流(stream)处理和批(batch)处理,其中批数据看做是流数据的一个特例。 在批(batch)处理中,批数据是在时间上有界的数据,需要处理的数据量是确定的。而在流(stream)处理中,流数据是在时间上无界的数据。相对于批数据,流数据增加了一个新的时间维度。流处理和批处理,需要处理的对象都是大数据,需要解决大数据处理的共性问题。 流处理和批处理 CAP定理是大数据处理的基础约束,对一个分布式计算 …

    更多

  • ES 写入

    2022-02-17 in NoSQL

    写入流程 写操作在搜索系统和NoSQL数据库中的对比 实时性: 搜索系统的Index一般都是NRT(Near Real Time),近实时的,比如Elasticsearch中,Index的实时性是由refresh控制的,默认是1s,最快可到100ms,那么也就意味着Index doc成功后,需要等待一秒钟后才可以被搜索到。 NoSQL数据库的Write基本都是RT(Real Time),实时的,写入成功后,立即是可见的。Elasticsearch中的Index请求也能保证是实时的,因为Get请求 …

    更多

  • ES 查询

    2022-02-17 in NoSQL

    查询流程 Lucene的读 TopDocs search(Query query, int n) 返回最满足Query的N个结果 Document doc(int docID) 通过doc id查询Doc内容 int count(Query query) 通过Query获取到命中数 Search类实时(Near Real Time)请求:同时查询内存和磁盘上的Segment,最后将结果合并后返回。所有的搜索系统一般都是两阶段查询,第一阶段查询到匹配的DocID,第二阶段再查询DocID对应的完整 …

    更多

  • ES 简介

    2022-02-17 in NoSQL

    概述 Elasticsearch是一个建立在全文搜索引擎库Apache Lucene 基础上的实时的分布式搜索和分析引擎,它可以帮助我们用很快的速度去处理大规模数据,可以用于全文检索、结构化检索、推荐、分析以及统计聚合等多种场景。 数据模型 Lucene Lucene提供了最基本的索引和查询的功能,是一个单机的搜索库,并且没有主键概念和更新逻辑 Lucene/Elasticsearch数据模型 @startmindmap *[#orange] 基本数据类型 **[#lightgreen]: …

    更多

Posts in 2021

  • API文档生成器

    2021-12-17 in Tools

    一、概述 基于java源码中的注释(不限于多行或单行)和泛型解析,来生成api文档元数据和具体文档输出的工具 只需要指定想要解析的接口源码目录,并保证接口涉及的所有类都包含在classpath下,然后再设置渲染方式,最后运行便可获得最终结果 目前支持json-with-comment 和 swagger-editor两种输出方式 二、实现原理 @startuml folder "数据源" { component [source源码] as src component …

    更多