搜索前置服务架构

发布时间:2020-09-23 14:12:36 来源:51CTO 阅读:1206 作者:chellman 栏目:软件技术

目前在系统中涉及到搜索的解决方案都是通过数据库自带特性解决,如通过mysql5.7自带的全文检索功能实现资源的搜索。
这样实现的好处是方便,无需额外开发和维护成本。但是随着业务的发展和数据的增加,性能和可扩展方面很容易出现瓶颈。

结合本次方案库需求的契机,决定引入spring boot + solr 为主要架构基础的前置平台用于应对日渐旺盛的搜索服务需求。

解决方案

搜索前置服务架构

前置平台基于spring boot开发,主要看中spring boot的微服务思想,方便开发和部署。同时可以为以后的微服务架构做技术热身。

通过spring boot搭建的前置平台会处理请求接入,限流,监控,安全等非功能性需求。
搜索端结合了最新的apache solr服务器端(6.6版本),使用自带的smart-cn中文分词组件,提供搜索服务的基础支持。

架构实现

架构实现部分主要通过具体实践来验证架构的可行性,不涉及具体业务细节和实际数据,
架构实现的操作描述力求做到可复制。

Spring boot项目创建

首先确保本机安装了jdk8+,然后就进入eclipse,创建一个maven project。
POM文件包含以下内容:

<parent>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-parent</artifactId>         <version>2.0.0.BUILD-SNAPSHOT</version> </parent> <properties>         <spring.data.solr.version>2.1.1.RELEASE</spring.data.solr.version>     </properties>     <dependencyManagement>         <dependencies>             <dependency>                 <groupId>org.springframework.data</groupId>                 <artifactId>spring-data-solr</artifactId>                 <version>${spring.data.solr.version}</version>             </dependency>         </dependencies>     </dependencyManagement>     <dependencies>     <dependency>        <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-web</artifactId>     </dependency>     <dependency>             <groupId>org.springframework.data</groupId>             <artifactId>spring-data-solr</artifactId>         </dependency> </dependencies>


Maven结构搭好后就是搭建你的项目架构,如图:

搜索前置服务架构

Application.java 对应了项目的入口,通过一段很简单的代码就可以启动一个jetty服务了。

package app; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import sample.Example; @SpringBootApplication public class Application { public static void main(String[] args) throws Exception {         SpringApplication.run(Example.class, args);     } }

运行示意图:

搜索前置服务架构

Solr服务端安装和配置

首先到官方网站下载最新的安装包,当前版本是6.6,下载zip包就可以了。
解压后的文件夹有以下几个目录是首先需要关注的:

bin: 启动脚本目录,通过这里面的命令来启动关闭服务器

server:solr服务器目录,配置文件和jar包以及索引数据都是在这个目录里面的

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。