赞
踩
2、URL增加?refresh
参数,需要传空
或者true
。
3、调用Refresh API
手动刷新
默认情况下,Elasticsearch 每秒定期刷新,但是仅限于在过去的30s
内收到的一个或者多个 search
请求。这个也就是近实时的一个点,文档的更改不会立即显示在下一次的检索中,需要等待 refresh
操作完成之后才可以检索出来。
我们可以通过如下方式触发refresh
操作或者调整自动刷新的间隔。
POST /_refresh
POST /blogs/_refresh
调整刷新间隔,每 30s
刷新
PUT /my_logs
{
"settings": {
"refresh_interval": "30s"
}
}
关闭自动刷新
PUT /my_logs/_settings
{ "refresh_interval": -1 }
设置为每秒自动刷新
PUT /my_logs/_settings
{ "refresh_interval": "1s"
refresh_interval
需要一个 持续时间 值, 例如1s
(1 秒) 或2m
(2 分钟)。 一个绝对值1
表示的是1毫秒
--无疑会使你的集群陷入瘫痪。
segment
)合并由于 refresh
操作会每秒自动刷新生成一个新的段(segment
),这样的话短时间内,segment
会暴增,segment
数量太多,每一个都会造成文件句柄、内存、CPU的大量消耗,还有一个更重要的点就是,每个检索请求也会轮流检查每一个segment
,所以segment
越多,检索也就越慢。
Elasticsearch 通过在后台自动合并 segment
来解决这个问题的。小的segment
被合并到大的segment
,然后大的segment
在被合并到更大的segment
。
segment
合并的时候会自动将已删除
的文档从文件系统中删除,已经删除的文档或者更新文档的旧版本不会被合并到新的 segment
中。
1、当 index
的时候,refresh
操作会创建新的segment
,并将segment
打开以供检索。
2、合并进行会选择一小部分大小相似的segment
,在后台将他们合并到更大的segment
中,这个操作不会中断 index
与 search
操作。
optimize API
不应该用在经常更新的索引上
该 optimize API
可以控制分片最大的 segment
数量,对于有的索引,例如日志,每天、每周、每月的日志被单独存在一个索引上,老得索引一般都是只读的,也不太可能发生变化,所以我们就可以使用这个 optimize API
优化老的索引,将每个分片合并为一个单独的segment
。这样既可以节省资源,也可以加快检索速度。
POST /logstash-2014-10/_optimize?max_num_segments=1
上述的refresh
操作是 Elasticsearch 近实时
的原因,那么数据的持久化就要看fsync
操作把数据从文件系统缓冲区flush
到磁盘了。所以只有当translog
被fsync
操作或者是提交
时,translog
中的数据才会持久化到磁盘。
如果没有持久化操作,当 Elasticsearch 宕机发生故障的时候,就会发生数据丢失了,所以 Elasticsearch 依赖于translog
进行数据恢复。
在 Elasticsearch 进行提交操作的时候,成本是非常高的,所以策略就是在写入到内存缓冲区的时候,同步写入一份数据到translog
,所有的index
与delete
操作都会在内部的lucene
索引处理后且未确认提交之前写入teanslog
。
如果发生了异常,当分片数据恢复时,已经确认提交但是并没有被上次lucene
提交操作包含在内的最近操作就可以在translog
中进行恢复。
Elasticsearch 的 flush
操作是执行 Lucene
提交并开始生成新的translog
的过程,为了确保translog
文件不能过大,flush
操作在后台自动执行,否则在恢复的时候也会因为文件过大花费大量的时间。
对于translog
有如下设置选项:
index.translog.durability
默认设置为request
,意思就是只有当主分片和副本分片fsync
且提交translog
之后,才会向客户端响应index
,delete
,update
,bulk
请求成功。index.translog.durability
设置为async
,则 Elasticsearch 会在每个index.translog.sync_interval
提交 translog
,如果遇到节点恢复,则在这个区间执行的操作就可能丢失。对于上述的几个参数,都可以动态更新
index.translog.sync_interval
将 translog
fsync到磁盘并提交的频率。默认5s
,不允许小于100ms
。
index.translog.durability
是否在每次index
,delete
,update
,bulk
操作之后提交translog
。
request
: 默认,fsync
每次请求之后提交,如果发生故障,所有已确认的写入操作到已经提交到磁盘
async
: fsync
在后台每个sync_interval
时间间隔提交。如果发生故障,自上次提交以来所有已确认的写入操作将被丢弃。
index.translog.flush_threshold_size
防止 translog
文件过大的设置,一旦达到设置的该值,就会发生 flush
操作,并生成一个新的 commit point
。默认512mb
。
1、一个文档被index
之后,添加内存缓存区,同时写入 translog
。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)
最全的Linux教程,Linux从入门到精通
======================
linux从入门到精通(第2版)
Linux系统移植
Linux驱动开发入门与实战
LINUX 系统移植 第2版
Linux开源网络全栈详解 从DPDK到OpenFlow
第一份《Linux从入门到精通》466页
====================
内容简介
====
本书是获得了很多读者好评的Linux经典畅销书**《Linux从入门到精通》的第2版**。本书第1版出版后曾经多次印刷,并被51CTO读书频道评为“最受读者喜爱的原创IT技术图书奖”。本书第﹖版以最新的Ubuntu 12.04为版本,循序渐进地向读者介绍了Linux 的基础应用、系统管理、网络应用、娱乐和办公、程序开发、服务器配置、系统安全等。本书附带1张光盘,内容为本书配套多媒体教学视频。另外,本书还为读者提供了大量的Linux学习资料和Ubuntu安装镜像文件,供读者免费下载。
本书适合广大Linux初中级用户、开源软件爱好者和大专院校的学生阅读,同时也非常适合准备从事Linux平台开发的各类人员。
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
需要《Linux入门到精通》、《linux系统移植》、《Linux驱动开发入门实战》、《Linux开源网络全栈》电子书籍及教程的工程师朋友们劳烦您转发+评论
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
[外链图片转存中…(img-UjerjbHL-1712637174034)]
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。