当前位置: 首页 > news >正文

定制做网站平台only网站建设分析

定制做网站平台,only网站建设分析,岳阳网站定制开发设计,wordpress注册密码Elasticsearch 通过多种机制确保数据在分布式环境中的一致性,但由于其分布式和近实时(Near Real-Time, NRT)的特性,它提供的是最终一致性(Eventual Consistency),而非强一致性。以下是核心机制和…

Elasticsearch 通过多种机制确保数据在分布式环境中的一致性,但由于其分布式和近实时(Near Real-Time, NRT)的特性,它提供的是最终一致性(Eventual Consistency),而非强一致性。以下是核心机制和策略:


一、写入一致性控制(Write Consistency)

在写入操作(如索引/更新文档)时,可通过参数 consistency 控制最小副本数要求:

PUT my-index/_doc/1?consistency=quorum
{"field": "value"
}

可选值:

  • quorum(默认):多数分片副本可用(公式:int( (primary + number_of_replicas) / 2 ) + 1)。
  • all:所有分片副本必须可用。
  • one:仅主分片可用即可。

👉 作用:防止网络分区时数据写入不一致。


二、主分片机制(Primary Shard)

  1. 所有写操作仅由主分片处理,再同步到副本分片。
  2. 写操作顺序性:主分片按收到请求的顺序执行写入,确保操作序列一致。

三、乐观并发控制(Optimistic Concurrency Control)

使用 _versionif_seq_no/if_primary_term 避免并发冲突:

PUT my-index/_doc/1?if_seq_no=5&if_primary_term=1
{"field": "new_value"
}

👉 如果版本号不匹配,操作失败(返回 409 Conflict),由客户端决定重试或合并数据。


四、事务日志(Translog, Write-Ahead Log)

  1. 写入操作首先存入内存缓冲区,同时追加到磁盘事务日志(Translog)。
  2. 故障恢复:节点重启时,通过重放 Translog 恢复未刷新的数据。
  3. 刷新(Refresh):默认每秒将内存缓冲区数据生成新的 Lucene 段(可搜索,但尚未持久化)。
  4. 刷盘(Flush):定期(或 Translog 达到阈值)将 Lucene 数据持久化到磁盘,并清空 Translog。

📌 关键点:Translog 确保即使宕机,已确认的写入操作不会丢失。


五、副本同步(Replication)

  1. 主分片写入成功后,并行将操作转发到副本分片。
  2. 同步要求
    • 主分片等待所有副本分片的成功响应(可通过 wait_for_active_shards 参数调整)。
    • 若副本失败,主分片通知主节点将副本标记为失效,并在其他节点重建副本。

六、读一致性(Read Consistency)

  1. 默认近实时(NRT):写入后约 1 秒(可调整 refresh_interval)才可被搜索到。
  2. 指定刷新:可通过 ?refresh=true 强制立即刷新,但影响性能。
  3. 搜索参数控制
    • preference:控制查询路由(如 _local 优先本地分片)。
    • wait_for_active_shards:搜索时等待指定数量分片可用。

七、脑裂防护(Split-Brain Protection)

通过配置 discovery.zen.minimum_master_nodes(旧版)或 cluster.initial_master_nodes(新版)避免网络分区时出现多主节点,导致数据分裂。


八、最终一致性的体现场景

场景表现
写入后立即查询可能查不到(因未刷新)/ 可能查到主分片但副本未同步
副本分片故障期间写入数据写入主分片,副本恢复后自动同步
节点宕机恢复通过 Translog 恢复未持久化数据,副本从主分片重新同步

九、生产环境建议

  1. 合理设置副本数:至少 1(允许单节点故障)。
  2. 调整刷新间隔:对实时性要求高的场景可缩短 refresh_interval(代价:资源消耗增加)。
  3. 关键写入操作:使用 ?refresh=wait_for 或手动刷新。
  4. 监控分片状态:通过 GET _cluster/health 关注 active_shards_percent_as_number
// 创建索引时优化配置示例
PUT my-index
{"settings": {"number_of_replicas": 2,"refresh_interval": "500ms",  // 降低刷新延迟"translog.durability": "request"  // 每次请求后刷写Translog(更强持久化)}
}

💡 权衡提示:更高的一致性保证往往以牺牲写入吞吐量和延迟为代价,需根据业务需求调整参数。

通过上述机制,Elasticsearch 在分布式、高并发的场景下,平衡了性能与数据一致性的需求。

http://www.dtcms.com/a/554212.html

相关文章:

  • 网站开发工具有哪些北京建机网站
  • 如何使用Selenium做自动化测试?
  • 百元级「枪球联动」IPC 速成方案
  • 响应式网站是什么意思wordpress默认用某一号字体
  • Java基础——常用API4
  • 深度拆解 Lua VM 栈结构:数据存储、操作逻辑与边界处理
  • Nginx入门基础-网页状态码
  • 网站排名乐云seo设计图标logo
  • 【JAVA全栈项目】弧图图-智能图床 SpringBoot+Vue3 :[框架开荒:一文全步骤打通前后端项目全流程]
  • Python 第二十四节 Pythong中网络编程相关详细使用及案例
  • 好文与笔记分享 A Survey of Context Engineering for Large Language Models(中)
  • 英文网站推广网站前端程序制作开发
  • 寻找在山西运城专业做网站推广的中关村网站建设的公司
  • 微前端架构深度解析:从概念到落地的完整指南
  • 中国电力建设集团网站群做网站jsp好还是
  • 如何创建一个简单的网页南京企业网站做优化
  • 黑马JAVA+AI 加强09-2 IO流-文件字节输入流-文件字节输出流-文件字符流-文件字符输出流
  • Parasoft C/C++test如何在ARM DS-5环境中进行测试(下)
  • 佛山销售型网站建设重庆网红
  • Linux基础 -- 零拷贝之 splice
  • Go 协程
  • 做网站时怎样图片上传怎么才能让图片不变形有什么插件吗淄博住房和城乡建设局网站
  • leetcode1312.让字符串成为回文串的最少插入次数
  • 宜春做网站 黑酷seo快递网站建站需要什么
  • org.apache.commons.lang3都有什么常用的类
  • edas会议投稿显示格式错误+消除浮动块下面的空白
  • 宁波建设网站公司北京seo案例
  • 虚拟网站仿制教程河南国控建设集团招标网站
  • viewerjs+vue3 using typescript
  • U81904 【模板】树的直径