Solr的SolrCloud与Master-slave主从模式对比
来源:互联网 发布:幽默淘宝店铺公告范文 编辑:程序博客网 时间:2024/06/05 08:48
摘要: 在之前的介绍中,已经涉及到了SolrCloud模式与Master-slave模式的搭建,本篇侧重于这两种模式的比较。
第一印象
SolrCloud是Solr4.0引入的,主要应对与商业场景。它很像master-slave
,却能自动化的完成以前需要手动完成的操作。利用ZooKeeper这个工具去监控整个Solr集群,以了解集群间各个机器的工作状态。
配置的区别
从配置来看,SolrCloud和master-slave的主要区别在于是否有ZooKeeper节点。从下面这个配置概念图可知,SolrCloud集群最小的节点数都大于master-slave节点数,当然ZK节点不需要很强大,因为它只是用来监视和维护SolrCloud中的节点状态。
为什么有SolrCloud或者master-slave
- 分片(Sharding)
分片是在多台机器间拆分Solr索引。分片有时候是必须的,因为索引数据可能大到无法容纳在单台服务器上。通过分片,你可以在多台机器上分割索引,并持续增长而不会遇到问题。 - 近实时搜索和增量索引(NRT Search)
master-slave中每台机器上具有相同的索引数据,master负责索引数据,其他slaves负责检索数据。slaves在每隔固定的时间去master上拿新的索引数据。
SolrCloud在每个shard中都有一个leader,其他的replica与leader数据基本相同。leader的额外任务就是分发索引到该shard下的所有replica。发送到SolrCloud中的所有文档都会被路由给leader节点(当replica收到文档时,也就是要更新索引时,它会把该文档添加到事务日志中,然后报告给leader,由leader执行这个任务)。这样的机制可以分布式更新索引,并且是持久化的。 - 分布式查询和负载均衡(Load Balancing)
在master-slave中,查询哪个节点就只会返回该节点的数据。如果想用分布式搜索来查询某一个节点,可能需要外部负载均衡器的支持。
在SolrCloud中,分布式搜索可以自动被管理:查询任意一个节点,都会触发查询请求到其他shard中的某一个节点,只有聚合了所有分片的结果时,响应才返回。ZooKeeper知道所有的节点状态,一旦某个节点的挂了,就会向另一个节点发送查询请求。如果是leader节点挂了,还需要启动投票机制重新选leader。 - 高可用性(High Availability)
在master-slave中,如果master节点挂了,那么其他节点还是可以继续查询操作的,但是不能索引数据了,除非再手动添加master节点。这样一来,在重启master之前的更新操作会失败。
在SolrCloud中,当ZooKeeper发现leader节点挂了,会立即启动投票机制重新选举leader。直到了leader被选出来,所有的更新操作都会记录在事务日志中,在leader选出来后,继续同步工作,确保没有数据丢失。
无论是master-slave还是SolrCloud模式,都可以提供replication机制。但是SolrCloud是自动处理路由和恢复,而master-slave在某个节点没有响应以后,需要一些手动的操作才能恢复。
master-slave配置会简单很多,而SolrCloud需要配置ZooKeeper,为了保证系统能持续不断的工作,还需要给ZooKeeper配置集群,需要额外的资源。
0 0
- Solr的SolrCloud与Master-slave主从模式对比
- Solr的主从模式Master-Slave
- solr5.5(4)——Solr的主从模式Master-Slave
- Mongodb的master-slave模式与master-master模式实验
- Redis的master/slave复制(主从复制)
- MySQL的主从使用 Master/Slave
- activemq的JDBC Master Slave主从集群
- redis主从[master、slave]
- mysql的master-slave模式
- 单PC Windows环境MySQL主从master-slave模式配置与测试
- solr replication,大部分master-slave模式才能用
- MYSQL5.6.33数据库主从(Master/Slave)同步安装与配置详解 (Master-Linux Slave-windows7)
- MySQL主从复制(Master-Slave)与读…
- MySQL数据库主从(Master/Slave)同步安装与配置
- MySQL主从复制(Master-Slave)与读写分离(MySQL-Proxy)
- mongodb (master/slave) 主从复制
- mysql master slave 主从安装
- mysql 主从复制(master-slave)
- Ubuntu 14.04配置dummynet指南
- 145. Binary Tree Postorder Traversal
- 欢迎使用CSDN-markdown编辑器
- |洛谷|数学|P2415 集合求和
- leetcode(70).258. Add Digits
- Solr的SolrCloud与Master-slave主从模式对比
- Java Eclipse Tomcat MySql开发javaweb项目环境搭建
- hdu1007Quoit Design
- padding 内边距
- 归并排序
- Android 缓存机制(一)
- 为什么使用泛型
- |洛谷|搜索|P2089 烤鸡
- combiner partitioner