搜索引擎 Elasticsearch 好在哪里,为什么 Wikimedia 打算要用它
发布网友
发布时间:2022-04-29 22:52
我来回答
共1个回答
热心网友
时间:2023-10-09 23:45
首先ES是基于Lucene这个非常成熟的索引方案,另加上一些分布式的实现:集群,sharding,replication等。
ES的优势主要可以看以下几个方面:
1. 横向可扩展性:只需要增加一台服务器,做一点儿配置,启动一下ES进程就可以并入集群;
2. 分片机制提供更好的分布性:同一个索引分成多个分片(sharding),这点类似于HDFS的块机制;分而治之的方式来提升处理效率,相信大家都不会陌生;
3. 高可用:提供复制(replica)机制,一个分片可以设置多个复制,使得某台服务器宕机的情况下,集群仍旧可以照常运行,并会把由于服务器宕机丢失的复制恢复到其它可用节点上;这点也类似于HDFS的复制机制(HDFS中默认是3份复制);
当然,也要知道其不足之处:
1. 各节点的一致性问题:其默认的机制是通过多播机制,同步元数据信息,但是在比较繁忙的集群中,可能会由于网络的阻塞,或者节点处理能力达到饱和导致各节点元数据不一致——也就是所谓的脑裂问题,这样会使集群处于不一致状态。目前并没有一个彻底的解决方案来解决这个问题,但是可以通过将工作节点与元数据节点分开的部署方案来缓解这种情况。
2. 没有细致的权限管理机制,也就是说,没有像MySQL那样的分各种用户,每个用户又有不同的权限。所以在操作上的*需要自己开发一个系统来完成;
总结:不过从优势与不足的对比看,我看还是瑕不掩瑜,是值得一试的技术。