JAVA问答14

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: JAVA问答14

17、对于 GC 方面,在使用 Elasticsearch 时要注意什么?

1、SEE:https://elasticsearch.cn/article/32

2、倒排词典的索引需要常驻内存,无法 GC,需要监控 data node 上 segment

memory 增长趋势。

3、各类缓存,field cache, filter cache, indexing cache, bulk queue 等等,要

设置合理的大小,并且要应该根据最坏的情况来看 heap 是否够用,也就是各类缓

存全部占满的时候,还有 heap 空间可以分配给其他任务吗?避免采用 clear cache

等“自欺欺人”的方式来释放内存。

4、避免返回大量结果集的搜索与聚合。确实需要大量拉取数据的场景,可以采用

scan & scroll api 来实现。

5、cluster stats 驻留内存并无法水平扩展,超大规模集群可以考虑分拆成多个集

群通过 tribe node 连接。

6、想知道 heap 够不够,必须结合实际应用场景,并对集群的 heap 使用情况做

持续的监控。

第 96 页 共 485 页18、Elasticsearch 对于大数据量(上亿量级)的聚合如何实现?

Elasticsearch 提供的首个近似聚合是 cardinality 度量。它提供一个字段的基数,

即该字段的 distinct 或者 unique 值的数目。它是基于 HLL 算法的。HLL 会先对

我们的输入作哈希运算,然后根据哈希运算的结果中的 bits 做概率估算从而得到

基数。其特点是:可配置的精度,用来控制内存的使用(更精确 = 更多内存);

小的数据集精度是非常高的;我们可以通过配置参数,来设置去重需要的固定内

存使用量。无论数千还是数十亿的唯一值,内存使用量只与你配置的精确度相关。

19、在并发情况下,Elasticsearch 如果保证读写一致?

1、可以通过版本号使用乐观并发控制,以确保新版本不会被旧版本覆盖,由应用

层来处理具体的冲突;

2、另外对于写操作,一致性级别支持 quorum/one/all,默认为 quorum,即只

有当大多数分片可用时才允许写操作。但即使大多数可用,也可能存在因为网络

等原因导致写入副本失败,这样该副本被认为故障,分片将会在一个不同的节点

上重建。

3、对于读操作,可以设置 replication 为 sync(默认),这使得操作在主分片和副

本分片都完成后才会返回;如果设置 replication 为 async 时,也可以通过设置搜

索请求参数_preference 为 primary 来查询主分片,确保文档是最新版本。

20、如何监控 Elasticsearch 集群状态?

Marvel 让你可以很简单的通过 Kibana 监控 Elasticsearch。你可以实时查看你

的集群健康状态和性能,也可以分析过去的集群、索引和节点指标。


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
目录
相关文章
|
6月前
|
存储 安全 Java
Java 集合(List、Set、Map 等)相关问答归纳再整理
HashMap 中使用键对象来计算 hashcode 值 HashSet 使用成员对象来计算 hashcode 值,对于两个对象来说hashcode 可能相同,所以 equals() 方法用来判断对象的相等性,如果两个对象不同的话,那么返回 false。 HashMap 比较快,因为是使用唯一的键来获取对象,HashSet 较 HashMap 来说比较慢。 4.1.3 HashMap 与 TreeMap
35 2
|
移动开发 小程序 Java
良心分享:基于Java+SpringBoot+Netty+WebSocket+Uniapp轻松搭建在线互动问答程序
本文将详细介绍如何基于你自己的开源项目搭建一个在线互动问答程序,包括微信小程序和H5网页版。 该项目服务端主要使用了Java + Spring Boot + Netty + WebSocket等技术栈,聊天客户端使用的是UniApp来轻松搭建微信小程序和H5网页端。
86 1
|
存储 SQL 缓存
JAVA问答17
JAVA问答17
89 0
|
存储 SQL 缓存
JAVA问答16
JAVA问答16
124 0
|
存储 搜索推荐 Java
JAVA问答15
JAVA问答15
101 0
|
存储 固态存储 Java
JAVA问答13
JAVA问答13
128 0
|
存储 缓存 运维
JAVA问答12
JAVA问答12
130 0
|
存储 自然语言处理 运维
JAVA问答11
JAVA问答11
103 0
|
存储 Dubbo 固态存储
JAVA问答10
JAVA问答10
121 0
|
设计模式 缓存 Dubbo
JAVA问答9
JAVA问答9
126 0