撸代码

业务量增大时,互联网产品架构的演进

2019-04-29 14:17:33 作者:码工0组
1、应用程序、文件、数据库,放在一台服务器上。
2、应用程序、文件、数据库分离,分别放在单独的服务器上。
CDN已经广泛应用。从最近的机房返回网络内容,适用于静态资源,例如js、css、图片、视频、软件等。把类似static.XXX.com、img.XXX.com域名,托管到CDN服务器上,实现网站加速。
用富文本编辑器把选择的图片传到CDN上,不需要经过服务器处理。例如,阿里云,可以用HTML5的file表单,以formData的模式上传到对象存储OSS,OSS如果已经和CDN连接,就会自动触发到CDN。
3、提升硬件的同时,使用redis等数据库缓存。
4、业务量很大时,单台应用服务器承受不了,就可以使用应用程序集群了。例如,LVS,四层负载均衡,根据目标地址和端口选择内部服务器。
5、读写分离、分表、分库。
读写分离。数据量很大后,当读的操作很多、写的操作很少时,就需要配置读写分离。在执行SQL语句时,判断是读、还是写,把读操作转向到读服务器(从服务器、一般是多台),写操作转到写服务器上(主服务器、一般是一台、视数据量来看)。为保证数据的一致性,需要主从复制。
MySQL中的二进制日志,会记录下所有修改过数据库的SQL语句。
分表。例如,用户表根据uid分表,uid % 5。
分库。例如,商品表、订单表、用户表分别入库。
6、业务拆分。不同的业务线分开。