ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

网站架构设计与演进

2021-07-17 23:01:05  阅读:167  来源: 互联网

标签:架构设计 缓存 架构 演进 网站 数据库 集群 数据 分布式


目录

1、架构核心要素

1.1、高性能

浏览器端:浏览器缓存、使用页面压缩、合理布局页面、CDN、资源动静分离
服务器端:缓存热点数据(本地缓存、分布式缓存)、异步(消息队列)、集群
代码层面:改善内存管理、多线程、批处理、SQL优化
数据库:索引、读写分离、分库分表

1.2、高可用

目标:一般需要做到99.99%可用,终极目标时7*24
方案:冗余,集群、灾备、多活等确保不会因为局部故障导致全局不可用或可迅速恢复;灰度发布确保不停机上线;

1.3、易伸缩

目标:应对大量用户高并发请求、海量数据存储时,方便扩容
方案:在不影响系统运行情况下,可加入新的机器、缓存、数据库到集群中

1.4、易扩展

目标:快速响应各种变化的需求,实现功能平滑扩展
方案:事件驱动架构(消息队列解耦业务)、服务化(分布式、微服务)实现服务服务员和独立扩展

1.5、安全性

目标:网络安全、应用安全、数据安全

2、架构模式

2.1、分层与分割

分层:横向切分,让每一层职责更独立,便于管理、分工和维护,如MVC
分割:纵向切分,将复杂系统按业务模块进行高内聚切分,便于开发、维护、分布式部署,如单体应该切分为面向服务应用

2.2、分布式与集群

分布式:分布式意味着可以调动更多的机器、CPU、内存、储存资源进行计算和处理,提高系统性能和并发能力
集群:集群其一是解决单机并发瓶颈,其二是为了实现系统高可用

2.3、缓存

目的:缓存就是将数据存在距离计算最近的位置以加快处理速度。
使用场景:一是数据访问热点不均衡,某些频繁访问数据应该放入缓存;二是数据更新较低频,在某个时间内有效,不会很快过期,否则可能读到过期的脏数据;

2.4、异步

使用消息中间件,进行系统异步解耦,提高性能,应对高并发

2.5、冗余

服务器:集群,确保7*24服务
数据:灾备、异地多活数据中心,确保故障快速恢复

2.6、自动化

目的:提高效率、减少人为干预故障、确保运维稳定性
方案:自动化发布(CI/CD)、自动化监控预警

2.7、安全

网络安全、应用安全、数据安全

3、架构演进

1)单体架构:业务初期,用户量较少,单体性价比最高
2)应用与数据分离:业务量上升,一台机器无法满足需要,性能逐步下降,开始进行分离
3)缓存引入:业务量继续上升,应用性能下降,引入缓存,将热点数据放入缓存服务器,减小数据库压力
4)读写分离:全部写都访问数据库,越来越多读依然访问数据库,数据库成为瓶颈,拆分为主从读写分离模式
5)集群与分布式:为应对高并发和保证高可用,扩展集群,同时将单体系统根据业务模块拆分为独立服务部署(如用户服务、订单服务、商品服务)
6)微服务:引入微服务组件,搭建可以满足大量用户访问与海量数据存储的互联网应用
在这里插入图片描述

标签:架构设计,缓存,架构,演进,网站,数据库,集群,数据,分布式
来源: https://blog.csdn.net/shaixinxin/article/details/118861950

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有