架构设计
2024-05-30 11:10:54 4 举报
AI智能生成
架构设计是一种系统化、策略性的规划过程,用于确定系统的结构、组件、模块和接口,以满足特定的业务需求。它包括定义系统的各个组件及其关系、组件的交互方式、数据流、控制流程、硬件和软件资源需求等。设计过程通常包括需求分析、系统建模、设计选择、实施规划和评估等阶段。最终目标是提供一个高效、可扩展、可维护、安全且可靠的系统。
作者其他创作
大纲/内容
架构视角
业务架构
核心目的
解决业务带来的系统复杂性
了解客户/业务方的痛点
梳理高阶需求和非功能性需求
进行问题域划分与领域建模
举例
全网多销售渠道电子商务
京东业务架构
应用/技术架构
主要目的
根据业务场景的需要,设计应用的层次结构,制定应用规范、定义接口和数据交互协议等
主要考虑系统的非功能性特征,对系统的高可用、高性能、扩展、安全、伸缩性、简洁等做系统级的把握
视角
功能视角
技术视角
物理架构
关注重点
机房搭建、网络拓扑结构,网络分流器、代理服务器、Web 服务器、应用服务器、报表服务器、整合服务器、存储服务器和主机
一个银行系统
DDD
核心思想
将问题域与应用架构相剥离
将业务语义显现化,把原先晦涩难懂的业务算法逻辑,通过领域对象(Domain Object),统一语言(Ubiquitous Language)转化为领域概念清晰的显性化表达出来
概念
统一语言
软件的开发人员/使用人员都使用同一套语言
对某个概念,名词的认知是统一的,建立清晰的业务模型,形成统一的业务语义
面向领域
业务语义显性化,以领域去思考问题,而不是模块
将隐式的业务逻辑,用通用语言去命名、去写代码、去扩展,让其变成显示概念
职责划分
根据实际业务合理划分模型,模型之间依赖结构和边界更加清晰,避免了混乱的依赖关系
单一职责,模型只关注自身的本职工作,避免“越权”而导致混乱的调用关系
架构服务化演进
单体分层架构(AllInOne)
构成
Web 层
服务层
数据访问层
优点
易于搭建开发环境
易于测试
易于部署
缺点
无法进行局部改动与部署
编译时间过长
回归测试周期过长
开发效率降低
面向服务架构(Service-Oriented Architecture)
微服务架构(Microservices Architecture Pattern)
云原生架构(Cloud Native)
核心要素
高并发
缓存
本地缓存
分布式缓存
限流
当高并发或者瞬时高并发时,为了保证系统的稳定性、可用性,系统以牺牲部分请求为代价或者延迟处理请求为代价,保证系统整体服务可用
降级
高可用
负载均衡
将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行
解决
高性能
单点故障(高可用)
水平伸缩
故障转移(failover)
当活动的服务或应用意外终止时,快速启用冗余或备用的服务器、系统、硬件或者网络接替它们工作
大型网站架构设计
客户层
减少http请求
浏览器缓存
启用压缩
js异步
减少cookie传输
前端层
DNS负载均衡
CDN本地加速
反向代理
应用层
微服务业务划分
负载均衡
降级限流熔断
消息队列
接口幂等
服务层
用户服务
订单服务
支付服务
数据层
数据库集群读写分离
nosql集群
文件系统集群
分布式缓存
冗余备份
冷备
热备
同步
异步
温备
大数据存储层
应用层和服务层日志采集
结构化数据清洗
大数据处理层
Mapreduce进行离线数据分析
Storm实时数据分析
案例
秒杀系统设计
Main Topic
Subtopic
Subtopic
0 条评论
下一页