摘要: 作为k8s官方维护的客户端,k8s go-client对于go语言中使用k8s可以说是唯一选项。但是官方的使用示例我个人觉得并不是很清晰,尤其是对于对于k8s并不熟悉的用户。这里我总结一下使用过程中碰到的坑,也希望能给有需要的人一些参考。 首先从官方示例说起:这里先解释一下k8s连接问题。集群的节点 阅读全文
posted @ 2021-03-16 19:55 zziawan 阅读(1401) 评论(0) 推荐(0) 编辑
摘要: 总是觉得对HashMap很熟悉,但最近连续被问到几个关于它的问题,才发现它其实并不简单。这里对关于它的一些问题做个总结,也希望能够大家一个参考。 都知道它是基于hash值,可以进行常量时间消化的存储结构。广泛用于各种情况下的高效key-value存储。这里有几个问题。首先,如果出现hash值冲突该怎 阅读全文
posted @ 2017-07-24 23:34 zziawan 阅读(314) 评论(0) 推荐(0) 编辑
摘要: mapping机制使得elasticsearch索引数据变的更加灵活,近乎于no schema。mapping可以在建立索引时设置,也可以在后期设置。后期设置可以是修改mapping(无法对已有的field属性进行修改,一般来说只是增加新的field)或者对没有mapping的索引设置mapping 阅读全文
posted @ 2017-06-19 22:47 zziawan 阅读(5830) 评论(0) 推荐(0) 编辑
摘要: 创建索引需要创建索引并且更新集群index matedata,这一过程在MetaDataCreateIndexService的createIndex方法中完成。这里会提交一个高优先级,AckedClusterStateUpdateTask类型的task。索引创建需要即时得到反馈,异常这个task需要 阅读全文
posted @ 2017-06-11 16:42 zziawan 阅读(10228) 评论(0) 推荐(0) 编辑
摘要: Create index Action 阅读全文
posted @ 2017-05-30 23:41 zziawan 阅读(4987) 评论(0) 推荐(0) 编辑
摘要: merge是lucene的底层机制,merge过程会将index中的segment进行合并,生成更大的segment,提高搜索效率。segment是lucene索引的一种存储结构,每个segment都是一部分数据的完整索引,它是lucene每次flush或merge时候形成。每次flush就是将内存 阅读全文
posted @ 2017-05-20 22:49 zziawan 阅读(4527) 评论(0) 推荐(0) 编辑
摘要: Lucene索引的一个特点就filed,索引以field组合。这一特点为索引和搜索提供了很大的灵活性。elasticsearch则在Lucene的基础上更近一步,它可以是 no scheme。实现这一功能的秘密就Mapping。Mapping是对索引各个字段的一种预设,包括索引与分词方式,是否存储等 阅读全文
posted @ 2017-05-08 23:24 zziawan 阅读(3824) 评论(1) 推荐(1) 编辑
摘要: elasticsearch对于索引中的数据操作如读写get等接口都封装在engine中,同时engine还封装了索引的读写控制,如流量、错误处理等。engine是离lucene最近的一部分。 engine的实现结构如下所示: engine接口有三个实现类,主要逻辑都在InternalEngine中。 阅读全文
posted @ 2017-05-03 23:36 zziawan 阅读(1687) 评论(1) 推荐(0) 编辑
摘要: 跟大多数分布式系统一样,es也通过临时写入写操作来保证数据安全。因为lucene索引过程中,数据会首先据缓存在内存中直到达到一个量(文档数或是占用空间大小)才会写入到磁盘。这就会带来一个风险,如果在写入磁盘前系统崩溃,那么这些缓存数据就会丢失。es通过translog解决了这个问题,每次写操作都会写 阅读全文
posted @ 2017-05-01 23:06 zziawan 阅读(9436) 评论(7) 推荐(1) 编辑
摘要: 从本篇开始,对elasticsearch的介绍将进入数据功能部分(index),这一部分包括索引的创建,管理,数据索引及搜索等相关功能。对于这一部分的介绍,首先对各个功能模块的分析,然后详细分析数据索引和搜索的整个流程。 这一部分从代码包结构上可以分为:index, indices及lucene(c 阅读全文
posted @ 2017-04-30 23:57 zziawan 阅读(1293) 评论(0) 推荐(0) 编辑