Solr In Action 中文版 第一章(三)

  1. 3.1              为什么选用Solr?

在本节中,我们希望可以提供一些关键信息来帮助于你判断Solr是否是贵公司技术方案的正确选择。我们先从Solr吸引软件架构师的方面说起。

  1. 3.1              软件架构师眼中的Solr

在评估一项新技术时,软件架构师必须要考虑一系列的因素,其中就包括系统的稳定性,可伸缩性,还有容错性。Solr在这三方面的得分都很不错。

说到稳定性,Solr是一个由活跃的开源社区和经验丰富的代码提交者共同维护的一项成熟技术。Solr和Lucene的新用户们通常会惊讶于项目的发布方式,可能他们以前都是等待某个项目的官方Release版,没听说过这种从分支上直接pull下来的方式。不管你的公司是否接受这种方式,我们并不是建议你这么做,我们想表明的是,Lucene和Solr项目中自动测试模块的测试深度和宽度是值得信任的。简单来说,如果你从分支上拿到了一个nightly
build,如果所有的自动测试都能通过,那你就可以放心的肯定所有的核心功能都是ok的了。

我们在1.2.6节中已经接触到了Solr实现可伸缩性扩展的方法,在1.2.7节中也讨论了容错性的问题。作为一个架构师,你可能最好奇的是Solr的可伸缩性功能和容错性功能的局限到底在哪里。首先,你需要知道在Solr4中,分片功能和复制备份功能都被重写了,在鲁棒性和易于管理方面都有很大提高。新的扩展方式被称为SolrCloud。其底层实现上,SolrCloud使用了Apache
ZooKeeper来管理Solr集群上的配置同步,并监控集群的运行状态。这里列出了一些Solr全新的SolrCloud功能的亮点:

·中心化的配置

·分布式的索引,避免单点失败(SPoF)

·自动容错,自动产生新的主分片

·任意节点均可触发覆盖整个集群所有分片的分布式全查询,且已经集成了自动容错和负载均衡

但是这并不是说Solr的可伸缩性就没有提高的空间了。SolrCloud在两方面还有待提高。首先,不是所有功能都能工作在分布式模式下。比如 joins连接功能。其次,一旦索引建立,索引的分片数目就不能再动态调整,要想改变分片数的话只能重新对所有文档建立索引。我们在第16章会详细讨论SolrCloud的方方面面,但是我们希望确保软件架构师们能够意识到Solr的可伸缩性过去几年中已经走过了很长的路,而且今后还将继续不断地改进下去。

  1. 3.2              系统管理员眼中的Solr

作为一名系统管理员,在考虑开始使用像Solr这样的一种新技术时,最优先考虑的是新技术是否能够很好地和已有系统进行配合。对于Solr来说对这个问题可以很轻松的回答YES。Solr 完全是基于JAVA开发的,可以在任意一个装有J2SE
6.x/7.x JVM虚拟机的操作系统上运行。而且Solr还自带了Oracle提供的开源Java Servlet引擎Jetty,拿来就能用。另一方面,Solr是一个标准的Java
Web应用,可以很方便的在JBoss或是Oracle AS之类的Java web应用服务器上进行部署。

对Solr的所有操作都可以通过HTTP请求来完成, 并且Solr在设计时就考虑到了同Squid或是Varnish这样的HTTP反向代理协同工作。Solr同时也支持JMX,所以你可以把Solr挂载到你喜欢的监控程序(比如Nagios)之下进行监控。

最后,Solr提供了一个不错的管理控制台, 可以用于检查配置,查看统计信息,发起测试查询,以及监控SolrCloud的健康情况等等。图1.4展示了Solr4 管理控制台的一个截屏,我们会在第二章中详细的学习管理控制台的使用。

  1. 3.2.1        公司CEO眼中的Solr

    尽管CEO之类的人物是不太可能看这本书的,我们还是要写几点关键的,以便于万一CEO在大厅里叫住你聊聊的时候你可以拿这几点去忽悠他。首先,管理层的人喜欢听到他们今天对技术做出的一笔投资将会在今后很长一段时间内都产生效益。具体到Solr,你可以强调一下许多公司至今还在靠着Solr
    1.4运行公司的产品,这可是2009年发布的老版本,这说明Solr是有着成功的商用案例的,并且一直持续在改进。

此外,CEO们喜欢可控可预测的技术。正如你在接下来的章节里所要看到的那样,Solr很好用,你可以在几分钟之内就搭起一个简单的Solr服务。另一个疑问是如果万一负责Solr的那个员工跳槽或是跑路了,我们公司的业务会受到影响吗?不会因此整个服务当掉把?Solr的技术确实比较复杂,但是其开源社区非常的活跃,这意味着你只要上去求助基本上都能及时得到帮助。而且,你是直接可以看到源码的呀,有的时候你发现一个地方写的有问题那你可以直接自己fix掉就行了。另外也有许多商业化的服务商可以帮你规划,实现和维护你的Solr系统,其中很多服务商还提供Solr相关的培训课程。

接下来这一点可能CFO更关心,就是使用Solr的投资花费问题。投资使用Solr其实花不了多少钱。我们不用知道你的运营环境的规模大小就可以很自信的说,你可以在几分钟之内就搭起一个简单的Solr服务,并且很快就可以建立文档的索引。现在搭在云端的一个服务器可以在亚秒级(译者注:即不到一秒的时间之内)就处理完上百万的文档请求。

Solr In Action 中文版 第一章(三),布布扣,bubuko.com

时间: 2024-12-26 06:57:09

Solr In Action 中文版 第一章(三)的相关文章

Solr In Action 中文版 第一章(一)

1.1我到底需要一个搜索引擎吗? 第一章           Solr 简介 本章速览: ·搜索引擎处理的数据特性 ·常见搜索引擎用例 ·Solr核心模块介绍 ·选择Solr的理由 ·功能概述 伴随着社交媒体.云计算.移动互联网和大数据等技术的高速发展,我们正迎来一个令人激动的计算时代.软件架构师们开始面对的主要挑战之一,便是如何处理全球巨大的用户基数所产生及使用的海量数据.此外,用户们开始期待在线软件应用永远都是稳定可用的,并且能够一直保持响应,这对应用就提出了更高的可扩展性和稳定性需求.为了

Solr In Action 中文版 第一章 (二)

Solr到底是什么? 在本节中,我们通过从头设计一个搜索应用来介绍Solr的关键组件.这个过程将有助于你理解Solr的功能,以及设计这些功能的初衷.不过在我们开始介绍Solr的功能特性之前,还是要先澄清一下Solr并不具有的一些性质: 1)  Solr并不是一个像Google或是Bing那样的web搜索引擎 2)  Solr和网站优化中经常提到的搜索引擎SEO优化没有任何关系 好了,现在假设我们准备为潜在的购房客户设计一个不动产搜索的网络应用.该应用的核心用例场景是通过网页浏览器来搜索全美国范围

Solr In Action 中文版 第一章(四、五)

1.1             功能概览1. 4 最后,让我们再按照下面的分类,快速的过一下Solr的主要功能: ·用户体验 ·数据建模 ·Solr 4的新功能 在本书中,为你的用户提供良好的搜索体验会一直贯穿全书的主题.所以我们就从用户体验开始,看看Solr是如何让你的用户感觉到爽的. 1.4.1             用户体验类功能 Solr提供了一系列的重要功能来帮助你搭建一个易用的,符合用户直觉的,功能强大的搜索引擎.不过你需要注意的是Solr仅仅是提供了类REST风格的HTTP AP

自译Solr in action中文版

目录 Part 1 初识 SOLR 1 Solr 简介 2 开始熟悉 Solr 3 Solr 核心概念 4 配置 Solr 5 建立索引 6 文本分析 Part 2 Solr 核心功能 7 发起查询 和 处理结果 8 分类索引 9 命中结果高亮 10 查询建议引导 11 结果分组 合并域 12 将Solr产品化 Part 3 Solr 高级应用 13 扩展Solr云 14 多语言搜索 15 复杂数据操作 16 相关性的调整 17 跳出思维定势 附录: A 从源代码编译Solr B 玩转Solr社

Java Persistence with MyBatis 3(中文版) 第一章 MyBatis入门

本章将涵盖以下话题: ž  MyBatis是什么? ž  为什么选择MyBatis? ž  MyBatis安装配置 ž  域模型样例 1.1 MyBatis是什么 MyBatis是一个简化和实现了Java数据持久化层(persistencelayer)的开源框架,它抽象了大量的JDBC冗余代码,并提供了一个简单易用的API和数据库交互. MyBatis的前身是iBATIS,iBATIS于2002年由ClintonBegin创建.MyBatis 3 是iBATIS的全新设计,支持注解和Mapper

The Book of CSS3 中文版 第一章:介绍CSS3

在这一章,为了展示本书所用的代码约定我会介绍一些新的CSS3属性,但在此之前我想简要说明下CSS3的历史.很想然你不需要为了使用CSS3去了解它的历史,但是我认为有一些关于CSS3当前状态的背景是很重要的. CSS3是一个在变化的规范.规范的一部分被认为是稳定的并且在现代浏览器中得到了很好的实现:规范的另一部分应当作实验性的并且被部分地不同程度的实现:还有一部分则仍然是理论上的提议,并且没有得到任何实现.一些浏览器创建了它们自己的CSS属性,这些属性不属于任何CSS3规范也许将来也不会添加进去.

LinQ in Action 学习第一章 例子。

最近用Entity Framework 做了个mvc 的小例子,发现代码中用LinQ 语法还是很多的,决定好好研究一下LinQ,补一下.net 的技术,是不是大家都对这些技术很熟了,,因为项目简单,都没怎么用. 参考书  Linq IN Action  中英文版对照, 也不知道这本是不是最好的介绍LinQ的书,看网上的评价还是可以的. 可以去皮皮书屋下载. 如果有更好的书推荐,欢迎大家留言给我 第一章: 就是对LinQ的简介,还是从写代码开始吧. 一: Hello Linq world: 这个例

【tapestry3笔记】--tapestry 初探,《 tapestry in action 》第一章学习笔记

由于要维护一个项目,要用到tapestry3这个老框架,虽然这个框架很老,但是在我看来ta的思想还是很先进的---面向组件编程. 由于网上资料少的可怜,辛苦找了很久终于找到一本名为<tapestry in action>的工具书,以下学习笔记均以此书为参考. 正文---tapestry初探 tapestry in action 第一章学习笔记 tapestry是一款以组件为核心的开发框架,组件就向一个黑盒子,我们无需关系组件是如何实现的,只需合理使用即可.这有点像jquery的插件,我们无需关

perl进阶中文版 第一章 介绍

翻译尊重原版,以自己的方式最大化地阐述原版内容. 更多内容请访问www.from0701.com.每周更新两章. 欢迎来到perl学习的下一阶段.你来这儿的理由可能是你想编写100行以上的代码或者仅仅是你的老板要求你这么做. 我们的<perl语言入门>如此伟大是因为他介绍了如何用perl编写中小型程序(在我们看来,这是perl最普遍的用途).但是为了不让我们的“小骆驼书”太厚重,我们有意并且小心地移除了很多内容. 接下来,我们将用和小骆驼书一样的风格去继续我们的故事.这儿包含了编写100-10