软件架构
1、单体架构
全部功能集中在一个工程里,技术栈受限,只能使用一个语言,对于大型项目不易开发、扩展和维护,性能扩展只能通过扩展集群节点、成本高
2、垂直架构
大型项目切割成比较小的单体项目
技术栈可以扩展、功能集中在一个项目,不利于开发、维护、扩展。
项目之间功能冗余,数据冗余,耦合性强
系统扩展只能通过集群方式
3、soa架构
面向服务架构、将重复功能抽取出来作为组件来使用,在项目与服务之间使用ESB(企业服务总线)的形式作为通信的桥梁
4、微服务架构
UI层 PC端 移动端(Android ios h5)
服务网关
服务层
数据层
将系统服务层完全独立出来,将每一个功能模块抽取为一个个细小的微服务
抽取的粒度非常细、遵循单一原则,采用轻量级框架协议运输
可以单独针对不同服务进行调优,适用于互联网时代
维护成本高,对团队挑战大