大型网站系统架构演化(Web)

大型网站系统架构演化

大型网站系统架构演化

需要关注的维度

高性能高可用可维护、应变、安全

涉及的技术

维度 涉及技术内容
架构 MVC,MVP,MVVM,REST,Webservice,微服务
并发分流 集群(负载均衡)、CDN
缓存 MemCache,redis,Squid
数据 主从库(主从复制),内存数据库,反规范化技术,NoSQL,分区分表技术,视图与物理化视图
持久化 HIbernate,Mybatis
分布存储 Hadoop,FastDFS,区块链
数据编码 XML,JSON
Web应用服务器 Apache,WebSphere,WebLogic,Tomcat,JBOSS,IIS
安全性 SQL注入攻击
其他 静态化,有状态与无状态,响应式Web设计,中台

演进过程

单体架构

垂直架构

使用缓存改善网站性能

缓存与数据库的数据一致性问题

数据库与缓存数据是否有可能不一致?如何解决?

有可能不一致。

大体思想如下:先写入数据库、再更新缓存

缓存技术对比
工作 MemCache Redis
数据类型 简单key/value结构 丰富的数据结构
持久性 不支持 支持
分布式存储 客户端哈希分片/一致性哈希 多种方式,主从、Sentinel、Cluster等
多线程支持 支持 支持 (Redis5.0之前不支持)
内存管理 私有内存池/内存池
事务支持 不支持 有限支持
数据容灾 不支持,不能做数据恢复 支持,可以在灾难发生时,恢复数据
Redis分布式存储方案
分布式存储方案 核心特点
主从模式 一主多从,故障时手动切换
哨兵模式 有哨兵的一主多从,主节点故障自动选择新的主节点
集群模式 分节点对等集群,分slots,不同slots的信息存储到不同节点
Redis集群切片的常见方式
集群切片方式 核心特点
客户端分片 在客户端通过key的hash值对应到不同的服务器
中间件实现分片 在应用软件和Redis中间,例如:Twemproxy、Codis等,由中间件实现服务到后台Redis节点的路由分派
客户端服务端协作分片 Redis Cluster模式,客户端可采用一致性哈希,服务端提供错误节点的重定向服务solt上。不同的solt对应到不同服务
Redis数据类型
类型 特点 示例
String(字符串) 存储二进制,,最大512M 缓存,计数,共享Session
Hash(字典) 无序字典,数组+链表,适合存对象。Key对应一个HashMap。针对一组数据 存储、读取、修改用户属性
List(列表) Linked List:双向链表,有序,增删快,查询慢;Array List:数组方式,有序,增删慢,查询快
消息队列,文章列表,记录前N个最新登录的用户ID列表
Set(集合) 键值对无序,唯一。增删查复杂度均为O(1),支持交/并/差集操作 独立IP,共同爱好,标签
Sorted Set【ZSet】(有序集合) 键值对有序,唯一,自带按权重排序效果 排行榜
Redis 淘汰算法
淘汰作用范围 机制名 策略
相关推荐
折哥的程序人生 · 物流技术专研2 小时前
【电商多平台电子面单对接实战|第二篇】抖音代发电子面单对接:从“面条代码”到整洁架构的涅槃之路
设计模式·架构·系统架构·单元测试·代码规范·单一职责原则
Sam_Deep_Thinking1 天前
结算分摊的策略模式:不同营销活动的扣点计算方案
java·设计模式·架构·系统架构
Alluxio1 天前
造父智能(哈啰robotaxi)在阿里云环境下构建极致透明的训练加速层
人工智能·机器学习·缓存·系统架构·自动驾驶·模型训练
SL-staff1 天前
企业级私有化AI知识库完整搭建指南:从RAG架构到Llama 3落地实践
人工智能·系统架构·私有化部署·rag·ai知识库·llama3·jvs-ai
故渊at1 天前
第一板块:Android 系统基石与运行原理 | 第一篇:Android 系统架构分层与 AOSP 规范
android·系统架构·android系统·aosp
名不经传的养虾人1 天前
从0到1:企业级AI项目迭代日记 Vol.41|多租户不是一个功能,是一次手术
服务器·数据库·系统架构·ai编程·ai工作流·企业ai
@insist1231 天前
系统架构设计师-软件容错架构设计:高可靠系统构建指南
架构·系统架构·软考·系统架构设计师·软件水平考试
@insist1231 天前
系统架构设计师-信息安全核心技术加解密、PKI、访问控制
系统架构·软考·系统架构设计师·软件水平考试
兴通物联科技1 天前
CRPT 俄罗斯诚信标签数据采集系统架构与 CSV 合规文件生成原理
大数据·图像处理·人工智能·计算机视觉·系统架构
Cosolar1 天前
AutoGen:微软开源的多Agent对话框架详解
人工智能·系统架构·大模型·agent·rag