系统架构的基本设计原则
抽象系统及系统间交互
1.找出合理通用的领域/业务对象
2.职责单一的子系统
3.系统间通过消息,或者RPC进行调用
4.单向调用,禁止循环调用(启动,升级系统会有麻烦)
5.对业务进行抽象,而不是当前的产品需求(业务确定,接口和流程基本确定)
架构设计技术选型
1.架构看起来简单清晰,看起来就复杂,很可能是设计有问题(简单原则)
2.使用同事熟悉的技术,逐步迭代成理想的技术选型
3.设计的时候多考虑,实现的时候逐步迭代
4.使用成熟的技术
5.非核心购买
为演化进行设计
1.提前考虑数据的准确性及后期的数据分析统计需求
2.按照项目的目标,数据规模,性能,增长量提前测试,规划好系统
3.考虑性能,水平延展性,高可用,高并发,海量数据可能性
4.分离不变的和经常变化的部分
5.可配置化
6.开闭原则,接口隔离原则
7.避免过早优化,过度设计
考虑异常
1.回滚设计
2.故障隔离原则
3. 核心服务梳理,高可用,可降级
4.为异常进行设计和架构
5.业务监控
6.异常监控
7.接口自我保护,限流,熔断
系统架构的基本设计原则相关推荐
- 系统架构设计的原则和模式
1 分层架构 分层架构是最常见的架构,也被称为n层架构.多年以来,许多企业和公司都在他们的项目中使用这种架构,它已经几乎成为事实标准,因此被大多数架构师.开发者和软件设计者所熟知. 分层架构中的层次和 ...
- 强烈推荐|我做系统架构的一些原则
本文已授权自骨灰级技术专家陈皓 原文:https://coolshell.cn/articles/21672.html 读完受益匪浅,强烈推荐给大家,都是非常宝贵的经验,希望大家也有收获! 工作 20 ...
- 左耳朵耗子:我做系统架构的一些原则
作者:左耳朵耗子 原文地址:https://coolshell.cn/articles/21672.html 工作 20 多年了,这 20 来年看到了很多公司的很多的系统架构,也看到了很多问题,在跟这 ...
- 系统架构师-基础到企业应用架构-系统设计规范与原则[上篇]
一.上章回顾 在上篇中我们讲解了几类UML2.0语言新推出的建模图形,总体来说通过这些图形能更详细的将某类信息表达出来.在这里我们简单回顾上篇讲解的内容. 上图中已经简单介绍了上章讲述的内容,具体内容 ...
- 掌握4C原则,设计高效的系统架构
hi,我是熵减,见字如面. 在软件开发中,设计一个好的架构是非常重要的,好架构能够影响整个系统的质量和可维护性. 而要设计出好架构,就需要遵循一些设计原则. 其中,架构设计的4C原则是一种常用的架构设 ...
- 浅谈系统架构设计-从架构设计原理、架构设计原则、架构设计方法展开
我们工作中一直强调要做架构设计.系分,最近前端同学在追求前端质量提升的时候,也在进行架构设计.前端系分的推广,那到底什么是架构设计和系分?该怎么做架构设计和系分?本文尝试对架构设计进行全面的介绍和分享 ...
- 系统架构设计模块拆分维度和原则
在我们从零开始做一个新系统的时候,会首先进行系统功能模块架构设计,那么是直接做一个大而全的垂直的MVC系统,使用一个war包进行发布管理,还是需要按一些规则进行模块拆分,设计成SOA或者微服务系统比较 ...
- 系统架构设计师如何进行架构设计
9.1 软件架构概述 9.1.1 软件架构的定义 定义1:软件或计算机系统的软件架构是该系统的一个(或多个)结构,而结构有软件元素.元素的外部可见属性及他们之间的关系组成. 定义2:软件架构为软件系统 ...
- 【软考系统架构设计师】2009年下系统架构师综合知识历年真题
[软考系统架构设计师]2009年下系统架构师综合知识历年真题 2009年下系统架构师综合知识历年真题 [软考系统架构设计师]2009年下系统架构师综合知识历年真题 [2009下架构真题第01题:绿色] ...
最新文章
- 设置USB无线网卡为监听模式大学霸IT达人
- 每日一皮:叫你们别上泰坦尼克,嗓子都喊哑了!没一个听我的,最后还把我......
- C++中对Mysql的操作函数可以参考以下blog中的内容
- 通过 SSH 连接到 VMware NAT 模式下的 Ubuntu 虚拟机环境
- springboot(2.2.4)全局异常处理(RestControllerAdvice,ExceptionHandler)
- Android开发之IPC进程间通信-AIDL介绍及实例解析
- django mysql数据同步_[django同步数据库]Django去操作已经存在数据的数据库
- python3 多线程 threading.local 代理_threading.local的作用?Python每日3题(多线程专题)...
- 2020 各大厂分享ppt
- 计划任务中使用NT AUTHORITY\SYSTEM用户和普通管理员用户有什么差别
- 微型计算机原理及应用论文,微型计算机原理及应用7030112997-TP19300101.pdf
- 机器学习专业名词中英文对照
- 测试通达信指标胜率的软件,如何利用通达信程序交易评测系统选高胜率小回辙高收益股票...
- java yyyymmddhhmm前一天,c日期格式化 yyyymmdd
- java 贝叶斯抠图_毕业论文(设计)基于贝叶斯算法的自动抠图程序设计与实现.doc...
- Petalinux EMMC启动
- RTSP RTMP HLS HTTP全功能流媒体播放器SkeyeExPlayer开发计划
- 万字综述智能驾驶车载激光雷达关键技术与应用算法
- 到底什么是云原生(Cloud Native)?什么是CNCF(Cloud Native Computing Foundation)
- games101 1-2