《开放搜索服务从系统平台到服务架构演变.pptx》由会员分享,可在线阅读,更多相关《开放搜索服务从系统平台到服务架构演变.pptx(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、开放搜索服务:从系统、平台到服务架构演变阿里巴巴搜索事业部 郭瑞杰(花名:国泊)2015年4月24日阿里搜索系统架构演变系统、平台、服务Inverted IndexAttribute(FieldData)Summary(Stored Field)Terma0,2b0,1c0,1,2,3d1,2e3DocTermdoc0a,b,c,adoc1b,c,ddoc2a,c,ddoc3c,eFieldattributefield11,2,4,9field2abc,cde,afield31.02field4truePer Doc:Fieldattributefield1abc cde afield2aa
2、bb ccfield3a b cfield4Per Doc:搜索引擎基础数据结构使用Inverted Index加速查询使用Attribute过滤、分组统计、聚合使用Summary做展示和摘要飘红5BuilderMemoryOn-Disk构建SearcherLoadIn-Memory(MMap)全量索引构建-对所有文档重新构建索引,并替换旧索引数据增量索引构建-对新增文档批量构建增量索引,合并至索引库中实时索引更新-Builder通过定时flush内存索引至磁盘,Searcher从磁盘Load新索引,实现分钟级或小时级更新时效性-性能较差单机架构Queryhttpd100w1亿+100w500
3、0w+数据PV7Offline Build Job全量/增量(Hadoop)(Pangu)实时更新SearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherMergerMergerCMQuery全量数据Feed1Feed2Feed3Feed4DispatcherBBBBDispatcherBBBBshard分布式架构Simon/Ganglia监控replicaOffline Build Job全量/增量(Hadoop)(Pangu)实时更新SearcherSea
4、rcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherMergerMergerCMDispatcherBBBBDispatcherBBBBSimon/Ganglia监控Merger进程挂掉-CM发现后屏蔽-进程重启,向CM注册,恢复服务Searcher进程挂掉-CM发现后屏蔽-进程重启,向CM注册-Dispatcher获取断点信息,续传实时更新的文档Dispatcher进程挂掉-CM发现后屏蔽-进程重启,向CM注册,恢复服务机器挂掉-CM发现后自动屏蔽-每天晚上全量索引完成后换机
5、器-不支持动态切换机器索引损坏-同上错误恢复XXXX50500+机器PEDeployExpress10Offline Build Job全量(Hadoop)(Pangu)实时更新SearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherProxyProxyAdminQuery全量数据Feed1Feed2Feed3Feed4SwiftPPPPDFSSearcherSearcherSearcherQRSQRSProxyAMon监控错误恢复实时更新SearcherSe
6、archerSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherProxyProxyAdminSwiftPPPPDFSSearcherSearcherSearcherQRSQRSProxyAMon监控QRS/Proxy进程挂掉-心跳停止,Admin发现后自动屏蔽-进程自动重启,心跳恢复,Admin恢复服务Searcher进程挂掉-心跳停止,Admin发现后自动屏蔽-进程自动重启,心跳恢复-重新向Swift拉取实时更新的文档-恢复服务Admin进程挂掉-查询、数据更新服务正常-进程自动重启
7、,配置恢复,心跳恢复,接管服务QRS/Proxy机器挂掉-Admin从Buffer机器列表中选择1台机器-启动进程,替代挂掉机器提供服务Searcher机器挂掉-Admin从Buffer机器列表中选择1台机器-启动进程-Admin发送命令给DeployExpress,拉取全量索引数据-从Swift拉取实时更新数据,数据完整后提供服务Admin机器挂掉-启动备份Admin-恢复配置,接管服务DeployExpressOffline Build Job全量(Hadoop)(Pangu)XXXX2014双11:天猫淘宝淘点点秒杀资源问题-流量波峰波谷、多业务间、在线离线资源无法复用运维问题-业务多、
8、机器多、峰值突增,扩容和机器迁移耗时耗力13AMon监控HippoSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherProxyAdminQRSProxyCluster1SearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherProxyAdminQRSProxyCluster3SearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearche
9、rProxyAdminQRSProxyCluster2机房1ClusterN自动分发部署-依赖数据、Binary分发部署集群间资源复用-共用Buffer机、机器分配、资源迁移提升资源利用率-低谷复用(跑测试算法任务)、不同服务间复用、在线离线复用SlaveYUMZookeeperCM2PackageDep DataWorkerDP2AmonFrameworkSlotainst2AMDP2AmonFrameworkSlotainst2SDKApp ToolsSDKMasterSchedulerSlave ManagerResource ManagerAM ManagerClient Interf
10、aceAMonHippo ToolsDP2DP2rpcrpcrpcrpcrpcHippoSearcherHippo SlaveSearcherHippo SlaveSearcherHippo SlaveSearcherHippo SlaveApplicationapp_name:testuser:testpackages:ha3,java resource:cpu:xx,mem:xx process:hippoadmin_workerparameters:-p xx-c xxenvs:xxxx.Hipoo Master1.SubmitAdminHippo SlaveQRSHippo Slave
11、QRSHippo Slaveqrs_1search_0search_1search_2search_32.Start3.require qrs resource X 2searcher resource X 44.assign127.0.0.2-75.StartQRSQRSSearcherSearcherSearcherSearcherqrs_1qrs_0search_0search_1search_2Search_3qrs_0两层调度实例16HippoSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearcherSearche
12、rProxyAdminQRSProxyCluster2QRS/Proxy机器挂掉-Admin向Hippo申请机器资源-Hippo分发Binary包和数据,启动进程,替代挂掉机器提供服务Searcher机器挂掉-Admin向Hippo申请机器资源-Hippo分发Binary包和数据,启动进程-Admin发送命令给DeployExpress,拉取全量索引数据-从Swift拉取实时更新数据,数据完整后提供服务Admin机器挂掉-启动备份Admin-恢复配置,接管服务XXXX错误恢复系统、平台、服务业务功能需求多样化搜索结果排序规则千差万别业务分属不同部门系统满足所有功能需求不现实系统支持排序规则定制
13、技术共享很难搜索业务和系统一套系统、多个代码分支、多套部署代码不能复用维护困难Search For 天猫Search For B2BSearch For 神马搜索Search For 淘宝Search For 聚划算系统提升无法共享随着业务数量增长效率急速下降.解决方案:平台化天猫B2B神马搜索淘宝聚划算.ISearch5自平台化的挑战-多样化功能需求如何满足-搜索结果排序规则如何灵活定制-业务需求如何快速响应系统插件化算分插件QRS插件文档处理插件动态摘要插件Function Expression插件Sorter插件QRSSorter插件ProxyQRS插件Sorter插件Searcher算
14、分插件Sorter插件动态摘要插件Function Expression插件团队组织架构保障业务业务平台团队算法团队引擎平台团队100+业务数量1000+服务化不让用户写插件屏蔽系统细节自助式定制OpenSearch:自助式云搜索服务相关性定制通过表达式定制搜索结果排序逻辑(后续将支持Lua)内置文本、地理位置相关等算分特征函数使用查询分析服务更好理解用户query索引结构定制文档字段、字段类型、索引方式可定制运行中的服务实例,索引结构可动态修改UI&API所有功能可以在控制台中操作完成所有主要功能可通过API操作实现按需使用服务,按需调整配额离线计算在线计算UIHBase/HadoopHip
15、po集群部署Amon集群监控QP查询分析统计AggregatorQuotaServer配额管理Swift分布式消息队列HA3搜索引擎平台MapReduceHQueueiStreamJoin主附表JoinAdapterRDSODPSOSSMySQL云梯1DRDSProcessor数据处理插件Suggest下拉提示Free Schema多租户数据模型相关性排序简单脚本战马FeatureLuaTengine/PHPAngularJSConsoleAPISearchPushConfigSolrAPIESAPI应用模板调试数据源相关性数据统计多租户数据模型:虚拟机appAdminVMVMVMVMVMVM
16、VMVMVMappVMVMVMVMVMVMappVMVMVMVMappVMappVMVM多租户数据模型:海量clusterAdminclusterappclusterappclusterappclusterappclusterappclusterappclusterclusterclustercluster多租户数据模型:混合appappappappappapp3appappappappappappappappappappapp3appappappappappappapp3appappappappappAdmin单行SSD,双机互备多行SSD,双机互备单行普通磁盘多行SSD,双机互备Clust
17、er(ssd)Cluster(sata)Cluster(ssd)cluster(ssd)按需使用,自动迁移appappappappappappappappappappappappappappappappappappappappappappappappappappappappappAdmin单行,双机互备多行,双机互备单行多行,双机互备流量高峰流量低谷开放搜索服务OpenSearch微博阿里云开放搜索服务旺旺群1318169830QQ群370015616阿里搜索引擎平台演变历史YSTVespaLuceneIsearch 1.6Isearch 3.0Isearch 3.0 For TaobaoIsearch 3.0 For B2BIsearch 3.2Isearch 4.0Isearch 4.2Isearch 4.5HAHA2HA3Isearch 4.3KingsoNewseIsearch5(HA3)OpenSearch开源:2015LocalAgent(守护进程)DeployExpress(链式数据分发)Anet(网络通信)Swift(消息队列)Indexlib(索引)Amonitor(监控)Hippo(资源管理)HA3(搜索引擎平台)Fslib(文件IO)ALog(日志)AInst(安装部署)Thanks微博ruijieguo 微信jared_guo