摘要:
我开源了一个轻量级的 kafka 消费客户端,已上传到中央仓库,欢迎使用! https://github.com/rushsky518/lite-kafka-consumer 阅读全文
摘要:
想学习下 flink,开始。 需求很简单,使用 flink 统计本地磁盘上一个文件的单词频率,实现方式有二 DataSet 和 DataStream,两种方式统计的结果出乎我这个新手的预料。 操作步骤: 1. 在 CentOS 中部署单节点的 flink,修改 conf/flink-conf.yam 阅读全文
摘要:
在日常使用线程池的过程中,怎样合理地关闭线程池,最小程度地影响业务,shutdown 和 shutdownNow 该如何选择? 1 public void shutdown() { 2 final ReentrantLock mainLock = this.mainLock; 3 mainLock. 阅读全文
摘要:
translog 是 Elasticsearch 保证数据可靠性和灾难恢复的重要组件,每个索引分片配备一个 translog,对索引数据的增加、更新操作都会记录在 translog 中。 translog 本质上是一个可滚动的日志文件,相比于 lucene 的写入持久化,日志文件的写入是一个相对轻量 阅读全文
摘要:
我们都知道 Elasticsearch 的搜索是近实时的,数据写入后,立即搜索(不通过 id)文档是搜不到的。这一切的原因要归于 lucene 所提供的 API,因为 lucene 的 API 就是非实时的,Elasticsearch 在 lucene 之上盖房子,通过一些增强,实现了查询的近实时和 阅读全文
摘要:
翻阅相关文档,说 Elasitcsearch searchAfter 是一个轻量的分页工具,那么它是如何实现的呢,使用时有哪些需要注意? 如下给出了一个 searchAfter 的使用示例,在第一次搜索时,searchAfter 不需要设置,查询结果的最后一个文档排序的字段值,作为下一次查询的 se 阅读全文
摘要:
Elasticsearch 的 Scroll 主要用于高效地分批检索大量数据记录,适用于那些数据量过大而不能一次性通过标准搜索请求获取所有结果的场景。Scroll 机制的工作原理类似于数据库中的游标(cursor),它允许用户发起一次搜索请求后,通过维护一个持续的上下文(context)来分批次获取 阅读全文
摘要:
如果需要一个搜索工具,lucene 完全可以胜任,但是网上大火的却是 Elasticsearch,它对 lucene 进行了分布式的赋能,lucene 解决搜索底层的数据存储,Elasticsearch 提供接口和分布式能力。而集群则是分布式的基础,那么 Elasticsearch 是如何组建集群的 阅读全文
摘要:
基于 canal,我们可以监听 MySQL 表的更新事件,借以实现数据同步或者通知刷新,话不多说,进入正题。 在 github 网页上的 canal 下载页,有如下几个压缩包: 所以,哪个是我们需要的呢?canal.adapter 是为了与其他数据系统适配而开发的工具,例如 hbase,es 等;c 阅读全文
摘要:
通常我们使用 ES, 使用的是 http api,其实 Elasticsearch 是天生的集群架构,ES 进程监听 2 个端口,9200 用于提供 http 访问,9300 用于和集群中的节点进行通信。 在 windows 开发环境下,调试 Elasticsearch 8.4.0-snapshot 阅读全文
摘要:
es 的索引生命周期管理 index lifecycle management 即 ILM,控制着索引的创建、滚动、删除、归档,属实好用,那么它是如何实现的呢? 可以想象得到,es 的 master 执行一个定时任务,定期检查关联了 ilm 的索引,判断索引的状态,执行状态的流转。 ILM 相关代码 阅读全文