玉溪淘宝网站使用什么技术设计知乎(必须掌握的几点技术)

一、前言

年成熟的大网站,如淘宝、京东等)的系统架构自开始设计以来并不具备完全的高性能、高可用性、安全性等特性,始终随着用户数量的增加,业务功能的扩展逐渐完善。 在这个过程中,开发模式、技术架构、设计思想也发生了很大的变化,甚至技术人员都从几个人发展到一个部门,甚至一条产品线,所以成熟的系统架构随着业务的扩展而不断完善,并不是一蹴而就的不同业务特点的系统有各自的重点。 例如淘宝,海量的商品信息检索,订单,支付,如腾讯,数亿用户的实时消息传输,百度它必须处理海量的检索请求,他们有各自的业务特点,系统结构也不同。 但是,我们可以从这些不同网站的背景中找到其中共享的技术。 这些技术和手段可以在大型网站系统的框架中广泛运行。 在这里,我们通过介绍大型网站系统的演化过程来了解这些技术和手段。

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

在最初的体系结构中,如图所示,APP、数据库和文件部署在一台服务上。

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

二、应用、数据、文件分离

随着业务的发展,一台服务器无法满足性能需求,因此需要将APP、数据库和文件分别部署到不同的服务器上,根据服务器的用途配置不同的硬件

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

三、利用缓存改善网站性能

在优化硬件性能的同时,也用软件优化性能。 在大多数网站系统中,利用缓存技术来改善系统的性能。 使用缓存主要来源于热点数据的存在,大部分网站访问遵循28个原则。 也就是说,80%的访问请求最终会落入20%的数据。 因此,可以缓存热点数据,减少对这些数据的访问路径,提高用户体验。

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

实现缓存的常用方法是本地缓存、分布式缓存。 当然还有CDN、反向代理等,这个以后再说。 本地缓存顾名思义,是将数据缓存在APP服务器的本地,既存在于内存中,也存在于文件中。 OSCache是常用的本地缓存组件。 本地缓存的特点是速度快,但由于本地空间有限,缓存数据量也有限。 分布式缓存的特点是可以缓存大量的数据和非常容易扩展。 常用于门户网站,速度不如本地缓存快。 常用的分布式缓存是Memcached、Redis

APP服务器作为网站的入口,可以承担大量的请求。 大多数情况下,由APP服务器的集群分担请求数。 将负载平衡服务器放置在APP服务器之前,安排用户请求,并根据分发策略将请求分发到多个APP服务器节点。

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

常用的负载平衡技术硬件为F5,价格较高,软件为LVS、Nginx、HAProxy。 LVS是四层负载平衡,根据目标地址和端口选择内部服务器。 Nginx支持7层负载平衡和HAProxy支持4层、7层负载平衡,可以根据消息内容选择内部服务器,所以LVS的分发路径比Nginx和HAProxy好,性能高,

随着用户数量的增加,数据库成为了最大的瓶颈。 改善数据库性能的常用手段是进行读写分离和表格划分。 读写分离顾名思义,就是将数据库分为读取和写入库,通过主准备功能实现数据同步。 库表分为水平分割和垂直分割,水平切换分割为用户表等一个数据库的特大表。 垂直分割由业务切换。 例如,关于用户业务、商品业务的表被放置在不同的数据库中。

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

四、使用CDN和反向代理提高网站性能

如果我们的服务器配置在成都的机房,对四川用户来说访问很快,对北京用户来说访问很慢。 这是因为四川和北京分别属于电信和联通不同的发达地区,北京的用户访问需要经过较长的路径才能通过互联路由器访问成都的服务器,返回路径也是如此,所以数据传输时间较长。 在这种情况下,经常使用CDN解决。 CDN将数据的内容缓存在运营商的机房,用户访问时首先从最近的运营商那里获取数据,从而大幅减少了网络访问的路径。 比较专业的CDN运营商有蓝汛、网络住宿。

另一方面,反向代理是位于网站上的机房,在收到用户请求时首先访问反向代理服务器,反向代理服务器将缓存的数据返回给用户。 如果没有未缓存的数据,继续到APP服务器进行检索,也可以降低检索数据的成本。 反向代理包括Squid、Nginx。

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

五、使用分布式文件系统

用户日益增加,业务量增加,生成的文件增加,一台文件服务器无法应对。 需要分布式文件系统的支持。 一般的分布式文件系统有NFS。

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

对于

六、使用NoSql和搜索引擎

海量数据的查询,使用nosql数据库和搜索引擎可以提高性能。 并不是所有的数据都放在关系数据上。 常用的NOSQL有mongodb和redis,搜索引擎有lucene。

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

七、将应用服务器进行业务拆分

随着业务的扩大,APP应用非常庞大。 这种情况下,需要将百度分为新闻、网页、图片等业务等,对APP进行业务分割。 各业务APP应用负责比较独立的业务运营。 业务通过消息通信或共享数据库来实现。

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

八、搭建分布式服务

此时,我们发现各业务APP使用的是用户服务、订单服务、支付服务、安全服务等基本业务服务。 这些服务是支持各业务APP应用的基本要素。 提取了这些服务,利用分部服务框架构建了分布式服务。 淘宝的Dubbo是个好选择。

京东、淘宝等大型网站系统的演化过程,必须掌握的几点技术

九、总结

大型网站的框架根据业务需求不断改进,并根据业务特点进行特定的设计和考虑。 本文介绍了常规大型网站的相关技术和手段。

这里所说的硬实力,也就是技术上的真正积累。

怎么体现你的技术能力? 我大致分为技术深度和技术广度两个方面。 的宽度通俗地说就是熟悉其技术点的使用和基本原理。 一般的面试官会在面试的第一轮询问很多技术点,审查你是否能正确使用。

准备不足的面试完全是浪费时间,不是自己的责任(如果title高,我没说的时候)。

今天给大家介绍转行时应该准备的Java面试大纲。 其中大部分是面试中的面试问题,可以对照这个查漏补缺。 当然,这里列举的方法不能涵盖一切。

软实力在面试过程中也特别重要,多指与面试官的交流、对一个问题的说明方法和表达方法、逻辑思维能力等。

面试的过程是微笑的,项目说明需要严密的表达,个人的优缺点基本上要随口说说。 这些其实是软实力的体现。

关注我+打开私信

回复关键词 【架构】可以免费获取大型互联网架构资料+社群交流+大牛解答

比你优秀的人都领了,信则有不信则无,相信相信的力量

Focus on the strength of the pithy专注极简的力量

PITHY CONTACT

一家没有销售的玉溪网站建设公司
我们特立独行

img/mail.png联系我们

PITHY CALL

如果您对我们的服务有什么疑问
欢迎来电咨询

电话
18868949445
img/top.svg
网站声明 | 隐私政策 | 网站地图 © 2018 MFweb. All rights reserved. Designed by玉溪网站制作玉溪网站设计公司玉溪网站建设公司