山海散人
073. 互联网系统架构演进之路
关注作者
腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
山海散人
社区首页
>
专栏
>
073. 互联网系统架构演进之路
073. 互联网系统架构演进之路
山海散人
关注
发布于 2021-03-03 10:21:18
发布于 2021-03-03 10:21:18
581
0
举报
文章被收录于专栏:
山海散人技术
山海散人技术
1. 互联网技术演进之路
1. 初生
无名的网站 -> 访问量低,一台服务器满足需求。
典型的技术 LAMP:Linux + Apache + MySQL + PHP
2. 发展问题
性能越来越差
越来越多的数据导致存储空间不足
3. 应用服务和数据服务分离
服务器对应不同的硬件需求
应用服务器:需要更快更强大的 CPU(处理大量的业务逻辑)
数据库服务器:需要更快的硬盘和更大的内存(快速磁盘检索和数据缓存)
文件服务器:需要更大的硬盘(存储大量用户上传的文件)
不同的服务器承担不同的角色
并发处理能力。
数据存储空间。
4. 发展问题
数据库压力太大导致访问延迟,进而影响整个网站的性能,用户体验受到影响。
5. 使用缓存改善性能
缓存
本地缓存(能存的数据量较少,并且会与应用程序争夺内存)
远程分布式缓存
6. 发展问题
能够处理的请求连接有限,网站访问高峰期,应用服务器成为整个网站的瓶颈。
7. 应用服务器集群
负载均衡
软件:Apache、Nginx、Reverse-proxy、pWEB、LVS
硬件:F5
DNS 负载均衡
8. 发展问题
有一部分读操作(缓存访问不命中,缓存过期)和全部的写操作要访问数据库,当用户达到一定规模后,数据库因为负载压力过高而成为整个系统的瓶颈。
9. 数据库读写分离
数据访问模块
在 Mybatis 中开发插件
Mycat
Sharding-JDBC
10. 发展问题
用户规模越来越大,发布地域越来越广,地域网络环境差别很大,面临问题:如何保证用户的访问体验,不至于因访问慢而流失用户?
11. 反向代理和 CDN 加速
加快用户访问响应速度。
减轻后端服务器的负载压力。
12. 发展问题
单文件服务器、单数据库服务器,面临问题:存不下日益增长的数据。
13. 分布式文件系统和分布式数据库系统
适合存储小文件、图片的分布文件系统
FastDFS
TFS
数据访问模块
Mycat
Sharding-JDBC
14. 发展问题
随着业务的发展,数据的存储需求和检索需求越来越复杂,面临的问题:
存储的字段差异较大,骷髅表。
复杂的文本检索。
15. 使用 NoSQL、搜索引擎
搜索引擎:lucene、solr、elasticsearch
NoSQL:mongodb、elasticsearch
16. 发展问题
网站越做越好,业务不断扩大,越来越复杂,面临的问题:应用程序将变得无比庞大,迭代周期越来越快,牵一发而动全身,怎样应对快速的业务发展需要?
17. 业务拆分
如大型电商网站会将首页、商铺、订单、买家等拆分不同的产品线,分归不同的团队负责,分成不同的应用,独立部署。通过链接、MQ、数据存储系统建立关联。
18. 发展问题
业务规模不断增大,应用拆分越来越小,越来越多,面临问题:
应用间的关系越来越复杂,应用中存在大量相同的业务操作。
后端的数据库要被成千上万应用服务器连接,数据库连接资源不足。
19. 分布式服务(服务化)
服务化的两种架构方式
服务框架:Dubbo、SpringCloud
配置中心:Dubbo、SpringCloud config、Disconf(百度)、Config-toolkit(当当)、Diamond(阿里)
20. 发展问题
数据挖掘、分析、推荐等业务需求,庞大系统的监控、问题分析等需求。
21. 大数据技术、监控、 日志分析系统
大数据:Hadoop、Spark
系统监控:Zabbix、ElasticSearch+beats+Kibana
集中式日志分析系统:ELK
2. 架构设计思想总结
分而治之。
随网站所需灵活应对。
业务发展驱动技术发展,技术发展反哺业务。
软件系统的价值在于它能为用户提供什么价值,在于网站能做什么,而不在于他是怎么做的。
3. 架构设计的误区
一味追随大公司的解决方案。
为了技术而技术。
企图用技术解决所有问题。
本文参与
腾讯云自媒体同步曝光计划
,分享自作者个人站点/博客。
原始发表:2020/09/17 ,如有侵权请联系
cloudcommunity@tencent.com
删除
前往查看
缓存
网站
数据库
dubbo
jdbc
本文分享自
作者个人站点/博客
前往查看
如有侵权,请联系
cloudcommunity@tencent.com
删除。
本文参与
腾讯云自媒体同步曝光计划
,欢迎热爱写作的你一起参与!
缓存
网站
数据库
dubbo
jdbc
评论
登录
后参与评论
0 条评论
热度
最新
推荐阅读
目录
1. 互联网技术演进之路
1. 初生
2. 发展问题
3. 应用服务和数据服务分离
4. 发展问题
5. 使用缓存改善性能
6. 发展问题
7. 应用服务器集群
8. 发展问题
9. 数据库读写分离
10. 发展问题
11. 反向代理和 CDN 加速
12. 发展问题
13. 分布式文件系统和分布式数据库系统
14. 发展问题
15. 使用 NoSQL、搜索引擎
16. 发展问题
17. 业务拆分
18. 发展问题
19. 分布式服务(服务化)
20. 发展问题
21. 大数据技术、监控、 日志分析系统
2. 架构设计思想总结
3. 架构设计的误区
领券
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档
0
0
0
推荐