文档章节

搜索引擎的分片(shard)和副本(replica)机制

杨尚川
 杨尚川
发布于 2014/08/30 23:10
字数 344
阅读 1332
收藏 2
点赞 0
评论 0

搜索引擎通过分片(shard)和副本(replica)实现了高性能、高伸缩和高可用。

 

分片技术为大规模并行索引和搜索提供了支持,极大地提高了索引和搜索的性能,极大地提高了水平扩展能力;

 

副本技术为数据提供冗余,部分机器故障不影响系统的正常使用,保证了系统的持续高可用。

 

2个分片和3份副本的索引结构如下所示:

 



 

一个完整的索引被切分为0和1两个独立部分,每一部分都有2个副本,即上图的灰色部分。

 

在 生产环境中,随着数据规模的增大,只需简单地增加硬件机器节点即可,搜索引擎会自动地调整分片数以适应硬件的增加,当部分节点退役的时候,搜索引擎也会自 动调整分片数以适应硬件的减少,同时可以根据硬件的可靠性水平及存储容量的变化随时更改副本数,这一切都是动态的,不需要重启集群,这也是高可用的重要保 障。


© 著作权归作者所有

共有 人打赏支持
杨尚川

杨尚川

粉丝 1078
博文 218
码字总数 1620540
作品 12
东城
架构师
搭建高可用MongoDB集群(分片)

MongoDB基础请参考:http://blog.51cto.com/kaliarch/2044423 MongoDB(replica set)请参考:http://blog.51cto.com/kaliarch/2044618 一、概述 1.1 背景 为解决mongodb在replica set每个从......

KaliArch
2017/12/04
0
0
Elasticseach(2)

1、Elasticseach对复杂分布式机制的透明隐藏特性 分片、cluster discovery、shared负载均衡,shared副本 请求路由、集群扩容、shared重分配 2、Elasticseach的垂直扩容与水平扩容 (1)垂直扩容...

会说话的鱼
05/07
0
0
MongoDB 3.4 shard 分片

数据压力大到机器支撑不了的时候能否做到自动扩展? 在系统早期,数据量还小的时候不会引起太大的问题,但是随着数据量持续增多,后续迟早会出现一台机器硬件瓶颈问题的。而MongoDB主打的就是...

cstsncv
2017/07/04
0
0
mongodb 3.4 集群搭建:分片+副本集

mongodb是最常用的nodql数据库,在数据库排名中已经上升到了前六。这篇文章介绍如何搭建高可用的mongodb(分片+副本)集群。 在搭建集群之前,需要首先了解几个概念:路由,分片、副本集、配...

纯洁的虫纸
2017/08/11
0
0
Ambari 增加mongodb cluster

我们先看一下mongodb cluster 生产上集群架构,如下图 Mongos:mongos的实例,客户端直接连接mongos,由mongos把读写请求路由到指定的Shard上去。一个Sharding集群,可以有一个mongos,也可以...

litterMo
2016/06/17
303
0
Elasticsearch 5.0-基础概念

Elasticsearch 5.0-基础概念 标签 : Elasticsearch [TOC] 本文是 Elasticsearch 5.0 系列博文的基础概念篇,主要介绍集群,节点,索引,类型,文档,分片,副本等基础概念 写在前面 本文以 ...

brianway
2016/12/13
21
0
elasticsearch基础操作01

ElasticSearch ES是一个基于Lucene实现的开源、分布式、Restful的全文本搜索引擎;此外,它还是一个分布式实时文档存储,其中每个文档的每个 field均是被索引的数据,且可被搜索;也是一个带...

limingyu0312
05/15
0
0
ElasticSearch学习笔记1

es 的来源 问题拆解 如果用数据库来实现会怎么样? 什么是全文检索? 什么是 Lucene? 数据库实现 先看第一个问题,如果我们用数据来实现搜索功能,可能的语句就是对 string 建立索引,或者直...

超级个体颛顼
2017/09/06
0
0
基于Nutch+Hadoop+Hbase+ElasticSearch的网络爬虫及搜索引擎

网络爬虫架构在Nutch+Hadoop之上,是一个典型的分布式离线批量处理架构,有非常优异的吞吐量和抓取性能并提供了大量的配置定制选项。由于网络爬虫只负责网络资源的抓取,所以,需要一个分布式...

杨尚川
2014/08/30
0
22
一台主机搭建Centos7.2的mongodb3.4.2集群

这两天在做mongodb集群的实验,然后写下这篇文章来总结一下也算是个笔记吧。 机器有限,就在一台机器上面做了,还是台虚拟机。。。 图就不画了(其实是画了,但是很难看就不帖出来了) IP:1...

ExperienceFrom
2017/07/13
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

代码生成利器:IDEA 强大的 Live Templates

代码生成利器:IDEA 强大的 Live Templates

qwfys
14分钟前
1
0
spring boot使用通用mapper(tk.mapper) ,id自增和回显等问题

最近项目使用到tk.mapper设置id自增,数据库是mysql。在使用通用mapper主键生成过程中有一些问题,在总结一下。 1、UUID生成方式-字符串主键 在主键上增加注解 @Id @GeneratedValue...

北岩
18分钟前
0
0
告警系统邮件引擎、运行告警系统

告警系统邮件引擎 cd mail vim mail.py #!/usr/bin/env python#-*- coding: UTF-8 -*-import os,sysreload(sys)sys.setdefaultencoding('utf8')import getoptimport smtplibfr......

Zhouliang6
20分钟前
0
0
日常运维--rsync同步工具

rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而...

chencheng-linux
25分钟前
1
0
Java工具类—随机数

Java中常用的生成随机数有Math.random()方法及java.util.Random类.但他们生成的随机数都是伪随机的. Math.radom()方法 在jdk1.8的Math类中可以看到,Math.random()方法实际上就是调用Random类...

PrivateO2
37分钟前
1
0
关于java内存模型、并发编程的好文

Java并发编程:volatile关键字解析    volatile这个关键字可能很多朋友都听说过,或许也都用过。在Java 5之前,它是一个备受争议的关键字,因为在程序中使用它往往会导致出人意料的结果。在...

DannyCoder
昨天
0
0
dubbo @Reference retries 重试次数 一个坑

在代码一中设置 成retries=0,也就是调用超时不用重试,结果DEBUG的时候总是重试,不是0吗,0就不用重试啊。为什么还是调用了多次呢? 结果在网上看到 这篇文章才明白 https://www.cnblogs....

奋斗的小牛
昨天
0
0
数据结构与算法3

要抓紧喽~~~~~~~放羊的孩纸回来喽 LowArray类和LowArrayApp类 程序将一个普通的Java数组封装在LowArray类中。类中的数组隐藏了起来,它是私有的,所以只有类自己的方法才能访问他。 LowArray...

沉迷于编程的小菜菜
昨天
0
0
spring boot应用测试框架介绍

一、spring boot应用测试存在的问题 官方提供的测试框架spring-boot-test-starter,虽然提供了很多功能(junit、spring test、assertj、hamcrest、mockito、jsonassert、jsonpath),但是在数...

yangjianzhou
昨天
0
0
rsync工具介绍/rsync通过ssh同步

rsync工具介绍 数据备份是必不可少,在Linux系统下数据备份的工具很多,其中重点介绍就是rsync工具,rsync不仅可以远程同步数据,还可以本地同步数据,且不会覆盖以前的数据在已经存在的数据...

Hi_Yolks
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部