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