028-85365936
产品服务>大数据平台

分布式大数据检索平台

亿橙大数据检索平台采用分布式并行运算技术,可整合多台服务器的计算能力,为前端应用提供毫秒级的检索响应速度,并可动态增加服务器来应对数据量或并发量的增长。平台采用深度定制开发的策略,从核心算法一直到外围接口,我们都可以根据具体项目、数据规模、数据类型以及检索用例进行相应的定制开发,保证最大化利用服务器性能,在提升检索效率的同时,降低硬件采购成本。

原理

访问

对于上层应用来说,开发人员不用关心“云检索平台”是如何运作的,只需要送入检索词,即可得到结果集。API可根据开发语言需要,灵活定制访问形式以及参数和返回值。

流程

1、通过预定义的适配器,实时获取数据;

2、数据分发服务将数据均匀的分发到各索引服务;

3、索引服务开始建立索引;

4、将新追加的索引同步到索引库;

5、检索服务在索引库中查询检索词;

6、返回结果集给上层应用。

架构

如上图所示,云检索平台共分为数据适配、数据索引、云检索控制、扩展支持、检索定制API五大模块:

(一)数据适配

可根据需要,对各种数据源进行适配器定制,实时跟踪数据增加或修改。

(二)数据索引

1、 标准格式转换:按照索引及统计规则对数据进行格式转换;

2、 数据分发:将待索引数据,按照规则均匀的分配给各个索引服务器;

3、 缓存队列:标准格式转换将数据写入数据队列,等待提取;

4、 自动化索引:对队列中的数据执行索引;

5、 索引同步:将新追加的索引同步到索引库;

6、 历史数据清理:定时对历史数据进行清理。

(三)云检索控制

整合各检索服务的统一计算能力,快速完成检索响应。

(四)扩展支持

1、 数据冗余:将数据按一定规则在服务器中形成备份,提高系统可靠性;

2、 负载均衡:在高并发量的条件下,将请求均匀的分发给各服务器,避免出现某一服务器长时间超负荷运作的情况;

3、 高速缓存:自动将某一时间段内检索频率较高的数据,放入高速缓存序列,为以后重复的查询提供快速服务,避免重复浪费检索资源;

4、 数据静态化:对执行过2次以上的历史检索数据,将数据源作为序列化文件存放在本地硬盘,再次检索时直接返回该反序列化对象(较为消耗硬盘空间);

5、 连接池:将连接信息缓存在内存中,减少消耗在连接上所用的时间;

6、 统计分析定制:可根据需要,灵活的对统计分析需求进行定制,便于后续调用;

7、 系统状态查询:系统管理员可通过图形化界面,直观的了解到系统中各服务器以及服务的运行情况;

8、 系统稳定性测试:在预定的时间间隔后,自动对系统各部件进行稳定性测试;

9、 故障通知服务:系统自动进行稳定性测试后,如果发现异常,可以通过预定义的通知方式及时的将故障通知给系统管理员;

(五)检索定制API

可根据调用语言、传入参数、返回类型进行接口定制,方便与上层系统无缝对接。

部署

(一)原型

谈到云检索平台的部署方案之前,首先要谈到我们的小企业解决方案。大多数小企业应用初期的数据量和并发都非常的小,通过简单的部署即可满足检索和索引的需求,如下图所示:

实现细节:

1、一台服务器上同时部署索引服务和检索服务;

2、索引服务定时的从数据源获取数据,将索引加入到本地数据库;

3、上层应用调用检索定制接口,即可进行检索。

(二)高性能

在数据量和并发量都不是很大的情况下,以上方案完全可以满足小企业的需求。但当数据量上升到一个非常庞大的规模后,简单的通过提升机器配置已经不可能满足需求时,就需要对方案进行扩展。下面将分析如何一步一步的解决各个系统瓶颈,提升性能。

1.增加检索服务器

根据数据特点,把数据按一定的原则,分布到多个服务器上,这样就可以利用多台服务器的计算能力来并行的处理同一个检索请求,实现高效率的检索响应。

2.增加索引服务器

当数据量增大,一台索引服务器不能胜任时,增加多个索引服务器来同时处理索引,保证数据能够即时的被索引。

3.增加数据分发服务器

当数据源产生数据的速度,已经超过单个“数据分发服务器”的IO极限后,需要增加“数据分发服务器”来保证及时的获取数据,每个“数据分发服务器”指定不同的数据适配,分散IO。

(三)高并发

前面已经解决了性能问题,现在面临并发量提升的需求,提高并发量的前提是检索速度得到满足的前提下。所以就有了两种路线来实现并发量的提升。

1.增加检索服务器——用于分散索引

增加检索服务器,把索引进一步拆散,减少每台服务器数据量,达到提升效率的目的。通过分散索引的方式,可以进一步减少数据结构复杂程度,指数级提升检索响应。

2.增加检索服务器——用于主从复制

增加当前一倍或多倍的检索服务器,检索服务器组之间分主从关系,可分担并发相应,效率的提升是线性的。

3.增加云检索控制服务器

通过以上两种方式,正常情况下已经可以满足较高的并发。“云检索控制服务器”是典型的CPU密集型,需要发出多线程检索请求,还需要合并数据并排序。当并发增加到相对较大的数据量级时,瓶颈就会出现在“云检索控制服务器”上,此时通过增加多个“云检索控制服务器”,来分担检索请求。

(四)高可靠

在高性能和高并发已经满足需求的前提下,需要进一步提升平台的可靠性,减少因为单点故障造成整个平台崩溃的可能性。 目前我们有两种方案来实现高可靠性:

1.数据冗余

写入索引时,按照预定义的冗余规则,对数据形成多份写入,同一条数据,分别写入不同的两台或更多服务器,互为备份,当一定数量的服务器同时出现故障时,仍然能够保持对外服务。故障出现时,并发处理能力会下降,当管理员修复故障后,即可恢复。

2.1+1备份

数据冗余在增加少量服务器的基础上,可以实现基本的可靠性保障,但如果故障全面爆发,连续多个关键点同时出现故障,整个云检索平台将会崩溃。此时可进行“1+1”扩展,进一步提升可靠性。通过对“分布式部署”进行复制,并搭配两台“请求分发服务器”(避免单点故障),分发请求到各个分布式部署,达到双机热备效果的同时,还可提升1倍的并发处理能力。