摘要:
Elasticsearch中各种线程池分析 最近看完了 "ElasticSearch线程池模块" 的源码,感触颇深,然后也自不量力地借鉴ES的 EsThreadPoolExecutor 重新造了一把轮子( "源码在这里" ),对线程池的理解又加深了一些。在继承 ThreadPoolExecutor实 阅读全文
摘要:
ES6.3.2 副本失败处理 副本的失败处理对理解ES的 "数据副本模型" 很有帮助。在 "ES6.3.2 index操作源码流程" 的总结中提到:ES的写操作会先写主分片,然后主分片再将操作同步到副本分片。本文给出ES中的源码片断,分析副本执行操作失败时,ES是如何处理的。 副本执行源码: 实现了 阅读全文
摘要:
ES 6.3.2 index 操作源码流程 1. client 发送请求 2. TransportBulkAction doExecute(Task,BulkRequest,listener) 解析请求,是否要自动创建索引?请求中 是否有mapping信息? 3. TransportBulkActi 阅读全文
摘要:
一次 ElasticSearch 搜索优化 1. 环境 ES6.3.2,索引名称 user_v1,5个主分片,每个分片一个副本。分片基本都在11GB左右, 一共有3.4亿文档,主分片总共57GB。 Segment信息: user_v1索引一共有404个段: cat user_v1_segment | 阅读全文
摘要:
谈谈JAVA中的安全发布 昨天看到 "一篇文章" 阐述技术类资料的"等级",看完之后很有共鸣。再加上最近在工作中越发觉得线程安全性的重要性和难以捉摸,又掏出了《Java并发编程实战》研读一番,这本书应该是属于为“JAVA 多线程作注解”的一本书,那我就为书中关于对象安全发布的内容作一些注解,作为今年 阅读全文
摘要:
ElasticSearch query_string vs multi_match cross_fields query 本文记录以字段为中心的查询和以词为中心的查询这两种查询方式的区别以及在ElasticSearch中的实现接口,然后以ElasticSearch官方文档为参数资料,比较 query 阅读全文
摘要:
线程池异常处理之重启线程处理任务 本文记录一下在使用线程池过程中,如何处理 循环长期运行的任务,在业务处理逻辑中,如果抛出了运行时异常时怎样重新提交任务。 这种情形在 "Kafka消费者" 中遇到,当为每个Consumer开启一个线程时, 在线程的run方法中会有 循环中消费Topic数据。 本文会 阅读全文
摘要:
ElasticSearch Index操作源码分析 本文记录ElasticSearch创建索引执行源码流程。从执行流程角度看一下创建索引会涉及到哪些服务(比如AllocationService、MasterService),由于本人对分布式系统理解不是很深,所以很多一些细节原理也是不懂。 "创建索引 阅读全文
摘要:
探究ElasticSearch中的线程池实现 ElasticSearch里面各种操作都是基于线程池+回调实现的,所以这篇文章记录一下 涉及线程池实现和ElasticSearch中如何自定义自己的线程池的。因为我们自己开发写代码,也经常会用到线程池,一般很少有机会自己去扩充实现一个自己的线程池,比如下 阅读全文
摘要:
由字典树想到的 字典树 双数组树 AC自动机双数组树 基于数组实现的字典树 基于数组实现的字典树,每个节点都有一个长度为R的数组。空间复杂度高。 查找成功的时间复杂度为O(logN) 基于HashMap实现的字典树 使用HashMap来保存所有的孩子节点,当孩子节点很多时,Map不可避免地存在Has 阅读全文