作者:empty 页数:206 出版社:empty |
对查询语句进行词法分析,语法分析,及语言处理搜索素引,得到符合语法树的文档根得到的文档和查询语句的相关性,对结果进行排序分词器一.秒杀架构设计业务介绍业务特点技术难点架构设计思想工异步缓存整体架构客户端优化二.数据库架构发展历程
需要存储、管理海量数据, 需要使用大量服务器.Facebook每周上传的照片数量接近10亿, 百度收录的网页数目有数百亿, Google有近百万台服务器为全球用户提供服务.用户分布广泛,网络情况复杂许多大型互联网站都是为全球用户提供服务的,用户分布范围广,各地网络情况千差万别,在国内,还有各个运营商网络互通难的问题。安全环境恶劣由于互联网的开放性,使得互联网站更容易受到攻击,大型网站几乎每天都会被黑客攻击。需求快速变更,发布频繁和传统软件的版本发布频率不同,互联网产品为快速适应市场,满足用户需求,其产品发布频率极高,一般大型网站的产品每周部有新版本发布上线,中小型网站的发布更频繁,有时候一天会发布几十次,渐进式发展几乎所有的大型互联网网站都是从一个小网站开始, 渐进地发展起来的.Facebook是扎克伯格同学在哈佛大学的宿舍里开发的; Google的第一台服务器部署在斯坦福大学的实验室; 阿里巴巴是在马云家的客厅诞生的, 好的互联网产品都是慢慢运营出来的,不是一开始就开发好的,这也正好与网站架构的发展演化过程对应.二、大型网站架构演化发展历程大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据,任何简单的业务一旦需要处理数以P计的数据和面对数以亿计的用户,问题就会变得很棘手,大型网站架构主要解决这类问题。初始阶段的网站架构大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站架构逐步演化而来,小型网站最开始没有太多人访问,只需要一台服务器就绰绰有余,这时的网站架构如下图所示应用程序、数据库.文件等所有资源都在一台服务器上应用服务和数据服务分离随着网站业务的发展,一台服务器逐渐不能满足需求:越来越多的用户访问导致性能越来越差,越来越多的数据导致存储空间不足,这时就需要将应用和数据分离应用和数据分离后整个网站使用3台服务器:应用服务器、文件服务器和数据库服务器.这3台服务器对硬件资源的要求各不相同:应用服务器需要处理大量的业务逻辑, 因此需要更快更强大的CPU;数据库服务器需要快速磁盘检索和数据缓存,因此需要更快的磁盘和更大的内存;文件服务器需要存储大量用户上传的文件,因此需要更大的硬盘.
分布式
大型网站系统的特点
高井发,大流量
高可用
海量数据
用户分布广泛,网络情况复杂
安全环境恶劣
需求快速变更,发布频繁
渐进式发展
二、大型网站架构演化发展历程
初始阶段的网站架构
应用服务和数据服务分离
使用缀存改善网站性能
使用应用服务器集群改善网站的共发处理能力
数据库读写分离
使用反向代理和CDN加速网站响应
使用分布式文件系统和分布式数据库系统
使用No SQL和搜索引擎
业务拆分
分布式微服务
三、拆分VS集群
四、律服务VS SO A
五.前后端完全分离与Rest规范
六、CAP三进二和Base定理
关系型数据库循ACID规则
CAP三进二
BASE定理
中间件
分布式一致性理论paxos、raft, zab算法
一.缓存
为什么要使用缓存
优秀的缓存系统Red is
red is为什么这么快
red is的数据类型, 以及每种数据类型的使用场景
red is的过期策略以及内存海达机制
渐进式ReHash
渐进式rehash的原因
渐进式rehash的步骤
缓存穿透
缓存雪前
二、消息队列
消息队列应用场景
异步处理
应用解料
流量目锋
日志处理
消息通讯
消息中间件示例
电商系统
日志收集系统
JMS消息服务
消息模型
消息消费
防止消息丢失
同步的事务——停止等待
同步的事务——连续ARO
异步的事务——回调机制
消息的幕等处理
消息的按序处理
三、搜索引挛
椒述
特点(优势)
使用场景
倒排索引
创建引
大数据与高并发
一些要索引的原文档(Document)
将原文档传给分次组件(Tokenizer}
将得到的词元(Token) 传给语言处理组件(Linguistic Processor)
将得到的词(Term) 传给素引组件(Indexer)
搜索索引
用户输入查询语句
Lucene和Elastic Search
屏时井发量大
库存量少
业务简单
现有业务的冲击
直接下订单
页面流量突增
限流
削峰
秒杀页面
防止提前下单
API接入层优化
限制用户维度访问频率
限制商品维度访问频率
SO A服务层优化
秒杀整体流程图
总结
对查询语句进行词法分析,语法分析,及语言处理
搜索素引,得到符合语法树的文档
根