近期在学习相关架构设计的过程中,遇到很多知识,受益匪浅。以前总是闭门造车,没有接收额外的吸收,导致工作时输出的知识和经验总是很匮乏,简单的做个汇总,后续将会花更多精力多学习更多知识。
不积跬步,无以至千里。
不积小流,无以成江海。
集群
同一个业务,部署在多个服务器上(不同的服务器运行同样的代码,干同一件事)
优点
- 多台机子可处理业务,分担压力
- 其中任何一台机子出问题,还有其他机子可使用
分布式
一个业务分拆多个子业务,部署在不同的服务器上(不同的服务器,运行不同的代码,为了同一个目的)
组件之间彼此进行交互以实现一个共同的目标
优点
- 模块间各自独立,便于扩展,复用性高
- 高吞吐量
分布式集群
分布式和集群的结合
微服务
业务系统彻底的组件化和服务化
SOA
Service-Oriented Architecture面向服务架构
- 一种服务
- 一种粗粒度,松耦合服务架构
- 通过简单,精确定义接口进行通讯,不涉及底层编程接口和通讯模型
软件架构设计原则
在coding时,我们经常要去思考如果去实现一种可以更大的方式去兼容未来的变化,等等,所以经常会通过这五大原则的方向去思考
开闭原则
- 定义:对扩展开发、对修改关闭
- 解决问题:实现热插拔,解耦方式
- 实现:接口、抽象
里氏替换原则
- 定义:子类是父类的具体,父类是抽象
- 解决问题:解释抽象化的具体原则
- 实现:继承、抽象
依赖倒转原则
- 定义:面向接口编程。依赖抽象不依赖具体
- 解决问题:易于拓展
- 实现:接口编程时类型使用基类,而不使用具体实现的子类
接口隔离原则
- 定义:使用多个隔离接口,比使用单个接口要好
- 解决问题:降低耦合
- 实现:封装接口的时候,尽量用不同接口解决不同问题,尽量不要合用一个接口