发布了文章2019-05-27
1 查看es状态信息的常用命令 {代码...} 减少数据节点上segment内存占用的方式 删除不用的索引 关闭索引(文件仍然存在于磁盘,只是释放掉内存),需要时可以打开。 定期对不再更新的索引force merge。 ES的heap是如何被瓜分掉的? segment memory filter cache field ...
发布了文章2019-04-30
简言之:es的master处理不过来了,es的segment合并是一个非常耗时的操作。批量处理的超时时间默认设置为30s。可以通过以下命令查看pending的task:
发布了文章2019-04-24
在笔者最开始维护的日志服务中,日质量较小,没有接入kafka。随着业务规模扩增,日质量不断增长,接入到日志服务的产品线不断增多,遇到流量高峰,写入到es的性能就会降低,cpu打满,随时都有集群宕机的风险。因此,接入消息队列,进行削峰填谷就迫在眉睫。本文主要...
赞了文章2019-03-29
Kafka 中的每一条数据都有一对 Key 和 Value, 数据存放在磁盘上, 一般不会被永久保留, 而是在到达一定的量或者时间后对最早写入的数据进行删除. Log Compaction 在默认的删除规则之外提供了另一种删除过时数据(或者说保留有价值的数据)的方式, 就是对于有相同 Key 的...
发布了文章2019-03-01
主要是因为磁盘不够用了。Elasticsearch磁盘占用大于95%时将所有索引置为只读。如果你自己手动删除了数据,Elasticsearch不会给你自动切换回来,不过你可以手动去修改。就是用上面的命令就好了。
发布了文章2019-02-27
假设有一种场景,我们希望能够将业务数据加入到access日志中,方便统计每个接口在用户粒度的调用量。那么在分布式日志服务中,我们可以考虑在每行的access日志中,添加用户的id,方便直接解析到es中,在es中计算count即可。本文主要解决access日志中添加userId的问题。
赞了文章2019-02-24
Java知识点总结(Java泛型) @(Java知识点总结)[Java, Java泛型] [toc] 泛型 泛型就是参数化类型 适用于多种数据类型执行相同的代码 泛型中的类型在使用时指定 泛型归根到底就是“模版” 优点:使用泛型时,在实际使用之前类型就已经确定了,不需要强制类型转换。 泛型...
发布了文章2019-02-24
在分布式日志服务架构中,我们只需要将logstash的output指向ES就可以了,但是,写入的数据是如何变成Elasticsearch里可以被检索和聚合的索引内容的呢?本文重点介绍数据在写入Elasticsearch索引流程中发生的具体操作。重点在于其中segment、buffer和translog三部分对...
发布了文章2019-02-21
Reactor是一个用于JVM的完全非阻塞的响应式编程框架,具备高效的需求管理能力。与Java8函数式API直接集成(CompletableFuture,Stream以及Duration)。它提供了异步序列API Flux(用于N个元素)和Mono(用于0|1个元素)。适用于微服务架构,并且完整支持响应式编解码。
发布了文章2019-02-20
抽时间重新读了一遍《深入理解JVM》一书。以下为摘录内容。 1 java内存区域 java虚拟机运行时数据区 1.1 程序计数器 是一块较小的内存空间,可以看做是当前线程所执行的字节码的行号指示器。每条线程都有一个独立的程序计数器,各条线程之间计数器互不影响。 1.2 jav...
赞了文章2019-02-18
前段时间看到左耳朵耗子博客上的一篇文章(查看原文)后,其中的一句话引发了我的思考,并且这句话也是我所认同的一种观点: 知识最好的方式是被检索、讨论、引用、整理、补充和更新。 在看完这篇文章,尤其是上面这句话之后,我想到了自己的个人博客,开始思考一个...
发布了文章2019-02-14
在《使用EFK快速搭建安全可靠的日志服务》一文中,我们已经大致介绍了分布式日志服务的各个组件。但是对于很多实现细节,并未涵盖到。本文主要介绍logstash用到的插件,以及对插件的离线打包,避免每次手动安装插件。本文主要分为4部分:
发布了文章2019-02-13
EFK是一套分布式日志服务解决方案,由各个组件构成。EFK分别是指:elasticsearch、filebeat、kibana。不过在真实的生产环境中,搭建日志服务可能还需要logstash来进行规制解析,使用kafka进行削峰填谷作为缓冲。在本文中,我主要介绍如何使用elasticsearch+filebeat+...