构建实时垂直搜索网站经验分享
刘连春@去哪儿网
大纲
•垂直搜索
•实时搜索
•监控系统
垂直搜索
•什么是垂直搜索?
–与业务紧密耦合
•高访问量
•高可用性
•快速响应
垂直搜索-高访问量
•构建集群
•动静分离
•转发策略
•缓存系统
•消息系统
高访问量-构建集群
Nginx
AppServer
Memcached
AMQ
Spider
添加机器即可扩容
(数据库用实机【IO,高可靠性】,应用服务器用虚拟机【快速调整内存,快速部署新机器】)
高访问量-动静分离
Nginx
静态内容
动态内容
高访问量-转发策略
•静态内容轮叫(Round-Robin)
•动态内容转发
–按用户转发
(同一用户日志在同一机器,问题诊断)
–按搜索条件转发
高访问量-缓存系统
•基本信息缓存
–配置文件
–基础数据
(定时刷新,即使刷新)
•分布式缓存
–Memcached
高访问量-消息系统
•AMQ (ActiveMQ)
AppServer
Spider
Queue
Topic
Other System
垂直搜索-高可用性
•消除单点
•自动故障转移
•系统尽量小而多
•控制后端压力
•使用外部接口经验
•留有备用系统
高可用性-消除单点
•为什么要消除单点
–软硬件故障是常态
•设计上的单点
–双机是基本要求
•隐藏的单点
–容量单点
(2个80%负载的机器)
–配置单点
(依赖的外部系统挂掉,没有设置超时)
高可用性-自动故障转移
•Failover
(避免类似下述场景问题:Nginx 报表导出 10分钟才能成功 超时转发 最后变成所有服务器都在运行导出服务)
数据库 2Master 1Monitor master之间IP漂移
AMQ 2个个服务器一组
Memcached 客户端转移
•Health check
高可用性-
系统尽量小而多
•降低影响用户比例
•快速启动
•快速添加服务器
高可用性-控制后端压力
•分航线配置抓取
(查询优化,移除无效查询)
•有效航线
•限制搜索量
(考虑供应商服务器性能)
•自动上下线
代理商工作时间 顾客量快满了
•协助对方优化系统
高可用性-使用
外部接口经验
•假定不稳定
–WebService, Socket, Mail
•设置超时
(连接超时,读取超时)
•添加
监控
•
用日志界定边界
–所有的输入输出
高可用性-留有备用系统
•缓冲系统压力
垂直搜索-快速响应
•有效利用缓存数据
•Ajax
多次回数
•优化静态内容
快速响应-有效利用缓存
•快速返回未过期数据
•主动更新缓存
–首页低价
快速响应-Ajax
多次回数
•只返回
必要的数据
•
动态调整刷新时间 可以返回报价的比例,调整相应时间
快速响应-优化静态内容
•利用CDN网络
•缓存静态内容
(图片),javascript,css不放 CDN不够稳定,故障,版本不对,系统控制在自己手里
实时搜索
•缓存更新策略
•Memcached使用经验分享
实时搜索-缓存更新策略
•设置过期时间
•反馈式更新
•热门点击易变化
缓存更新策略-设置过期时间
•根据业务特点设置
不同数据,时间不同
缓存更新策略-
反馈式更新
•构建反馈回路
AppServer
WebSite
User
Memcached
主动更新!
缓存更新策略-热门点击易变化
(设置短的缓存失效周期)
•最低的价格
•最好的时段
实时搜索-Memcached
•独立的LRU
•设置合理的过期时间
•缩减Key长度
•设置客户端的网络
超时
监控系统
•Cacti(监控)+Nagios(报警短信,邮件)
•深入应用的探针
–了解应用特性
–快速定位故障
–指导优化
•
分时报警
–不同时间段,不同的预警值
•设置
合理阈值
分享到:
相关推荐
大数据与云计算培训学习资料 构建实时垂直搜索网站经验分享 共33页.pptx
面向论文评审专家库自动构建的垂直搜索方法,纪晓文,赵华,获取科研工作者的科研成果是建立论文评审专家库,继而进行论文评审专家自动发现和推荐的首要工作。本文根据垂直搜索引擎技术设计
基于Storm构建实时热力分布项目实战.txt,视频还行。
基于Storm构建实时热力分布项目实战,欢迎小伙伴们下载哦
1.2.1 垂直搜索的应用场景 1.2.2 垂直搜索的技术选型 1.2.3 垂直搜索的引擎架构 1.2.4 垂直搜索技术和业务细节 1.2.5 现场答疑【Q&A】 2、知识扩展 2.1 淘宝类目及标题相关性分档计算方法 2.1.1 系统预测该关键词所...
《基于Flink+FlinkCDC+FlinkSQL+Clickhouse构建实时数据仓库》——本课程为大数据实时数仓项目实战课程,以大数据实时数仓项目为主线,理论和实战相结合,全方位、全流程、无死角讲解数仓项目的数仓基础、项目规划、...
websocket构建实时web应用,技术交流PPT
基于Flink+FlinkCDC+FlinkSQL+Clickhouse构建实时数据仓库课程,2022年新课,flink1.14版本
silverlight\使用Silverlight构建企业级RIA经验分享
使用Redis的pubsub技术构建实时消息系统
探讨了Lucene和Heritrix在构建垂直搜索引擎中的应用。 1、垂直搜索引擎的基本介绍 2、基于Java 的全文检索引擎—Jakarta Lucene 3、网络爬虫Heritrix 4、Lucene和Heritrix在构建垂直搜索引擎中的应用(含代码) 5、...
Storm实战构建大数据实时计算 Storm实战构建大数据实时计算
ArcGIS模型构建器批量操作:批量提取转角点坐标
快手基于 Flink 构建实时数仓的场景化实践.pdf
分享一套flink实时数仓的课程——《基于Flink+FlinkCDC+FlinkSQL+Clickhouse构建实时数据仓库》,2022年10月完结的新课,课程基于flink1.14版本,视频+源码+课件+软件包,一起提供下载!
《Storm实战:构建大数据实时计算 》是一本系统并且具有实践指导意义的Storm工具书和参考书,对Storm整个技术体系进行了全面的讲解,不仅包括对基本概念、特性的介绍,也涵盖了一些原理说明。 实战性很强,各章节都...
基于AnalyticDB for MySQL构建实时数据仓库.pdf
网站构建的相关知识网站构建的相关知识网站构建的相关知识网站构建的相关知识网站构建的相关知识网站构建的相关知识网站构建的相关知识网站构建的相关知识网站构建的相关知识网站构建的相关知识
大数据系统构建:可扩展实时数据系统构建原理与最佳实践