未登录用户
首 页
书 架
登录系统
注册账号
联系我们
duidaima.com
版权声明
闽ICP备2020021581号
闽公网安备 35020302035485号
搜索
我要提问
随便写写
我要写书
什么是软件的架构设计?
发布于 2个月前
339 热度
0 评论
昨日情书
0 粉丝 43 篇博客
关注
打赏
一、架构本质思考
1.1、什么是架构?
1.2、架构就在生活中
假如你是食堂大妈,如何低成本解决高峰回收的阻塞?
假如你是车站保安,如何低成本解决春运进站的并发?
假如你是电工师傅,如何低成本解决异常电流的危害?
举例子如下:
二、业务架构方法论
2.1、战略驱动的顶层架构
2.2、战略设计(子域划分)
为什么要分子域?
1、拆解难题: 通过领域的细分,逐步缩小问题域,降低业务理解和实现的复杂度。
2、区别对待: 区分不同子域功能的属性和重要性,投入不同的资源建设。
2.3、战术设计(领域建模)
2.4、案例:仓储子域建模过程
三、系统架构方法论
3.1、系统拆分过程
3.2、系统演进过程
3.2.1、单体架构-应用服务器和数据库一个服务器
3.2.2、单体架构-应用服务器和数据库进行分离
3.2.3、引入本地和分布式缓存
3.2.4、Nginx 负载均衡
3.2.5、数据库读写分离
3.2.6、数据库按业务分库
3.2.7、大表拆分小表
3.2.8、多个 Nginx 负载均衡
3.2.9、DNS 机房负载均衡
3.2.10、NOSQL 和搜索引擎
3.2.11、拆分微服务
3.2.12、容器化技术
四、技术架构方法论
4.1、良好的技术架构应该是什么样子?
4.2、可靠性策略
4.2.1、分仓隔离---管控危机
解释: 让损失处于局部
举例: MQ 多个 topic,数据库防雪崩等,病毒的隔离区
原则: 减少故障的蔓延范围
4.2.2、冗余---狡兔三窟
解释: 冗余指的是多重保险,浪费是为了可靠
举例: 主备数据库,集群,异地多活等……
原则: 凡事和数据相关的应该保持双份
4.2.3、降级---断尾求生
解释: 丢车保帅,牺牲边缘功能,保全核心功能。
举例: 日志降级,风控降级,弱依赖降级……
原则: 在核心业务收到威胁的时候,如果非核心业务有拖累的情况,果断抛弃非核心业务。 !
4.2.4、兜底---最后屏障
解释: 最后的防护手段。
举例: 商场电梯防坠落网,走兜底逻辑,技术上也有很多类似的场景设计
4.2.5、回滚---原路撤退
解释: 善于用兵者给自己留下退路
举例: 发布应用,一定要留下可用版本,一旦线上有问题,可以回滚
原则: 好的架构师,任何时候都会留下退路
4.3、拓展性策略
4.3.1、解藕---井河无犯
解释: 由于性质有较大差异,不同的性质需要分开对待。同一个事物的两个或者
多个方面矛盾激化,以至于不可调和,通过分离来消除矛盾
举例: 前后端分离
原则: 业务 VS 数据、核心&非核心
4.3.2、异步---事件驱动
解释: 异步通过应答方主动提醒,释放了请求方的时间
举例: AIO,MQ
原则: 核心流程和非核心流程之间多用异步,降低了核心流程的风险
4.3.3、插件---随意组合
解释: 插件化的是为了更灵活的组合,适用变化
举例: 流程引擎
原则: 接口标准化
流程引擎: 业务流程的拓展,快速响应
规则引擎: 代替 IF- ELSE,可配置化
4.4、高性能策略
4.4.1、集群分进合击
解释: 集群就是众人拾柴火焰高,集群里面每个点都是微不足道,组合在一起就非常强大。
举例: 服务器集群
4.4.2、缓存未雨绸缪
解释: 把获取代价较大的资源提前准备好。
举例: 线程池、redis
原则: 遇到需要频繁实时用较大代价获取资源的情况,优先考虑缓存
4.4.3、并行多管齐下
解释: 并行的本质就是利用多块资源同时满足多件事情
举例: 一个功能里面多个查询逻辑,为了提高性能,可以并行查询
原则: 尽量将不必要的串行优化为并行
4.4.4、并发统筹方法
解释: 并发与并行的本质区别在于,并发存在资源竞争,本质上仍然是串行,只不过将资源利用效率提高
举例: 多线程
原则: 由于存在资源竞争,所以并发不是越多越好,每个系统根据自己的并发能力去设计
4.5、可维护性策略
4.5.1、监控及时感知
解释: 及早监控到已经发生的风险,并能预警
举例: 运维监控系统
原则: 1、核心服务要有操作记录和监控
2、监控到的风险及时预警
4.5.2、修复自我痊愈
解释: 在感知的基础上,系统能够自我恢复正常。
举例: 人体的免疫系统,能够自我修复。Dubbo 注册中心,断开重连,业务上失败重试(幂等)
原则: 自愈的前提是能够感知
4.6、安全性策略
4.6.1、脱敏/加密秘不示人
解释: 增加非相关人获取私密信息成本
举例: 项目采购招投标文件要转机需要密码解密操作,其他人不能看到
4.6.2、认证报上名来
解释: 你得让我相信你就是你,可是你凭什么说你就是你?
举例: Token,验证码,人脸识别。
原则: 认证前的唯一标识。
4.7、降成本策略
4.7.1、复用他山之石
解释: 整合一切资源,可以快速满足业务目标。
举例: 基础能力平台,组件库。
原则: 不要重复造轮子。
五、架构的表达方式
5.1、4+1 视图
5.2、架构设计原则
用户评论
点击加载更多评论
架构设计
228 成员 |
814 话题
+我要提问
+随便写写
可能感兴趣的话题
系统引入缓存后可能引发的问题及解决之道
如何通过k8s来降低运营成本?
性能测试问题分析的通用方法
高并发系统架构有哪些性能优化方法?