网站平台架构演变史

风间影月の技术小站 风间影月の技术小站     2022-08-28     392

关键词:

朋友公司的产品已经做了11个年头了,在餐饮业可以说数一数二,网站架构从原始的单一应用一直演变至今,已经十分庞大了,不说完美,但是可支撑的业务量已经十分强大。最近受邀参与了他们的架构分享会,在此我也总结一下大致内容,一方面当做会议纪要,一方面也总结分享给大家看看。

先看一下初期架构,前期网站平台刚刚建立,对于访问量并发量来说并不会很高,所以采用如下的架构即可,虚线框代表服务端可以做一个主备集群,如果挂了可以使备胎立刻顶上,当然这个备胎对于有些创业小公司可以拿掉,毕竟多一台服务器也是成本

需要注意的事,前期我们并没有谈及高可用以及高并发。要这么做,那么服务器以及运维成本都要上去。

当服务端进行高可用设计,部署为集群的情况下,用户状态这个session改如何保证?

比如用户正在访问网站,session是有服务端A来提供,在nginx中可以配置不同服务器的访问权重,突然服务端A变为了服务端B或者C,那么用户session就丢失了,所以我们的session需要做粘性或者非粘性的同步,或者改为无状态session都行。

粘性和非粘性,这个可以通过tomcat来进行配置,经过测试同步session所需要的时间在半分钟-2分钟,尤其是在多集群情况下,这样的性能十分低下(参考原文链接),用户更不可能在客户端等待那么久,所有我们一般都会使用缓存来控制session使之成为无状态的。

退一步讲,我以前的公司至今都是采用cookie来存储用户的信息的,这样后端几乎没什么压力,但是对于一些人来讲,cookie总归是不安全的,但是我还是挺喜欢cookie的,如果真有人来看你的cookie那去看呗,反正加密的。因为人家淘宝初期也是这么做的

(我们目前的做法采用的是缓存+cookie中存放加密token来实现的)

那么再来看看这样的架构,朋友公司的餐饮系统(不是外卖,非外卖三巨头),在中饭以及晚餐时候的并发是特别高的,尤其是写操作,十分多,业界著名的12306在前期几乎是处于崩溃的状态,连用户都无法注册登录,主要是因为数据库的写操作出现了大并发,同时又有大量的用户在读,所以咯。再此我们要做的就是进行读写分离,可以自己实现,或者通过中间件比如mycat来做都行。如果你的电商平台设计到库存,那么读写分离还是不够的,毕竟读写库同步是需要时间的,写入的时候库存就应该减少,同步需要时间,而其他用户看到商品的库存的时候是有滞后的,所以在这里就需要引入缓存

 

对于读操作,很多时候可以把一些冷资源,或者说是静态的不怎么变化的数据放入缓存,这样的话可以大大提高读的并发性。

那么热资源怎么办?经常变化的数据用户也要读啊,那么在这里就要引入搜索引擎的技术,比如solr,elasticsearch

sorl和ES还是有比较大的区别,如何选择?如果索引数据是定时更新,对于用户来说实时性需求不是很大,那么使用Solr;如果索引需要事实更新的,那么就乖乖用ES吧(关于ES,过段时间空了会做一套教程)

大致先整理这么多,下篇具体讲讲数据库这块。

 

网站平台架构演变史-水平拆分的查询

之前在讲表拆分的时候氛围垂直拆分和水平拆分垂直拆分的查询其实不难,就是从单表变为了多表,而大部分情况下只是对主表的查询多,从表的查询会很少用到,这样的情况下关联查询不需要太多的考虑水平拆分之前讲了大数... 查看详情

网站平台架构演变史-数据库表的查询优化

上篇说道了数据库读写分离,对于大型网站来说这么说是十分有必要的。数据库在整个互联网架构中担当的角色无法有两个,存储和运算,很多时候这两个是并存的,但是在后期,对于上亿条数据来说,让数据库既要存储,又要... 查看详情

高性能高可用平台架构演变史

开篇概述在如今移动互联网、互联网+、大数据的时代,各类的互联网网站、平台异常突起,如同雨后春笋,有种“忽如一夜春风来,千树万树梨花开”感觉。对于移动互联网时代的平台来说,用户的体验感是否良好?平台的稳... 查看详情

高性能高可用平台架构演变史(代码片段)

开篇概述在如今移动互联网、互联网+、大数据的时代,各类的互联网网站、平台异常突起,如同雨后春笋,有种“忽如一夜春风来,千树万树梨花开”感觉。对于移动互联网时代的平台来说,用户的体验感是否良好?平台的稳... 查看详情

大型网站架构演变史(含技术栈与价值观)

这篇文章是参考李智慧的《大型网站技术架构:核心原理与案例分析》和现蘑菇街CTO曽宪杰的《大型网站系统与Java中间件实践》写的一篇读书笔记。前言何谓大型网站?大型网站的特点是什么?大型网站架构发生演变的源动力... 查看详情

大型网站架构演变和知识体系

...,讲述了淘宝网的架构演变过程,感觉挺好的,之前就对网站架构比较感兴趣,所以也会多关注一些架构方向的文章。本篇文章也是看到后感觉很棒,由于转载的并不是真正的作者,所以也就无法贴出真正作者地址了。以下是该... 查看详情

大型网站架构的发展演变过程(代码片段)

大型网站架构的发展演变过程  原文地址什么是大型网站如何定义一个网站是不是大型网站,一般我们会从两个纬度去考衡,访问量以及数据量,二者缺一不可。我们以javaweb为例,来搭建一个简单的电商系统,从这个系... 查看详情

转载:大型网站架构演变和知识体系

...据库最开始,由于某些想法,于是在互联网上搭建了一个网站,这个时候甚至有可能主机都是租借的,但由于这篇文章我们只关注架构的演变历程,因此就假设这个时候已经是托管了一台主机,并且有一定的带宽了,这个时候由... 查看详情

网站业务架构演变过程

有一天,我突发奇想创建了一个站点,基于LNMP架构,起初只有我自己访问,后来因为我点儿正,访问量越来越大,所以最终导致下面的架构演变。1.单台机器因为只是一个小站,访问量一天也没有多少uv(100以内),所以用一台1... 查看详情

互联网技术架构演变过程-软件架构设计学习第四天(非原创)

文章大纲一、演变过程思路图二、何为大型网站三、架构体系演进四、架构总结五、参考文章一、演变过程思路图二、何为大型网站1.大型网站特性既然说的是大型网站架构,那么架构的背后自然是解决人因面对大型网站特性而... 查看详情

大型网站架构演变

1、简介大型网站架构的演进最开始都是由小及大慢慢演变过来的,任何一个好的架构都不是设计出来了,是经过业务发展迭代而来的,这个观点我是赞同的。对于网站架构技术非常有兴趣,一直持续关注学习架构技术,本次想... 查看详情

(转载)中大型网站架构演变之路

 标签:网站架构 大型网站架构原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lizhenliang.blog.51cto.com/7876557/1951651前言网上有很多文章类似于... 查看详情

浅谈网站架构演变

浅谈网站架构   作为一个从事后台开发已经2年的程序员来讲,大部分时间都忙于业务逻辑分析,往往忽略了业务之上的架构层面的设计。本文作为网站架构知识的补充,不仅开拓了眼界,也对以后的程序设计益处多... 查看详情

大型网站架构-1.架构的演变过程

...发之路。 2.第二阶段:应用服务和数据服务分离随着网站的第一次上线,我们的网站如果运营得不错的话,在这之后应该会逐渐积累人气,业务也会随 查看详情

《大型网站技术架构》读书笔记——大型网站软件系统架构演变(代码片段)

大型网站软件系统特点大型网站架构演化发展进程大型网站的技术挑战主要来自于庞大的用户,高并发的访问和海量的数据。初始阶段的网站架构大型网站都是从小型网站发展而来,网站架构也是一样,是从小型网站... 查看详情

直播平台的数据库架构演变

8月24日,阿里云数据库技术峰会到来,本次技术峰会邀请到了阿里集团和阿里云数据库老司机们,为大家分享了一线数据库实践经验和技术干货。在本次峰会上,特邀嘉宾映客直播架构师王振涛分享了映客直播作为创业公司从0... 查看详情

从100pv到1亿级pv网站架构演变

一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中的体会。1:积累是必不可少的架构师... 查看详情

从100pv到1亿级pv网站架构演变(转)

http://www.linuxde.net/2013/05/13581.html 一个网站就像一个人,存在一个从小到大的过程。养一个网站和养一个人一样,不同时期需要不同的方法,不同的方法下有共同的原则。本文结合我自已14年网站人的经历记录一些架构演变中... 查看详情