SolrCloud作为分布式搜索引擎,具备以下几个特质:
可拓展性
可扩展性就是指可以通过扩大集群的规模来实现性能的提升。有两种方式来实现可扩展性,一种是纵向扩展,可以理解为增强外部硬件环境对集群的支撑,比如加快CPU速度,增加内存,提升磁盘I/O性能等,另一种是横向扩展,就是分布式系统中使用的通过增加节点来扩大集群规模。
SolrCloud采用的时横向扩展,可以通过两个方式来实现扩展,一种是增加shard,它实现的是将大数据量的index切分成多个小的index,这种方式是从将每个shard的数据量的角度来提升SolrCloud的性能的;另一种是增加replica,即增加shard的备份的数量,这种方式的优点是增加SolrCloud的并发查询能力以及容灾能力。一般来说,SolrCloud的查询能力随着资源(即shard)的增加成正比。
高可用性
高可用性主要是指SolrCloud的容灾能力,SolrCloud使用leader和replica以及交叉备份的方式实现数据的冗余以实现很好的容灾性能,leader和replica是同一shard的相同数据,一般存放在不同的主机上。当某台主机宕机时,该主机的副本数据在另外的主机上具有备份,这样就确保了数据不会丢失。同时SolrCloud在进行查询的时候是只对认准shard而不区分leader和replica,所以即使有一台主机宕机了也不会影响SolrCloud的查询结果,它只是稍微影响了查询性能。能够容纳多少台主机同时宕机而不影响查询业务,就要根据具体的副本策略来分析了。