1.分层架构
数据库-持久层-业务层-表现层
优点:分工,各层可以独立测试 缺点:扩展性能差
2.基于事件的架构
事件队列-分发器-事件通道-事件处理器
优点:属于分布式的异步架构,事件处理器之间是高度解耦的,软件的扩展性好
应用:(1)主要是松耦合,易扩展,外部请求都到MQ,在各个业务模块的rpc server完成消费并response
(2)同样的spring mvc也是这种,将请求分发给多个eventhandler去处理。
3.微核架构(插件架构)
所有的插件都在core system上。插件之间相互独立的,而且插件之间的通信应该减少到最低
4.微服务架构
每一个服务就是一个独立的部署单元(separately deployed unit)。这些单元都是分布式的,互相解耦,通过远程通信协议(比如REST、SOAP)联系。
其中微服务架构又分为了三种实现方式
(1)RESTful API 模式:服务通过 API 提供,云服务就属于这一类(2)RESTful 应用模式:服务通过传统的网络协议或者应用协议提供,背后通常是一个多功能的应用程序,常见于企业内部
(3)集中消息模式:采用消息代理(message broker),可以实现消息队列、负载均衡、统一日志和异常处理,缺点是会出现单点失败,消息代理可能要做成集群
5.云架构
云结构(cloud architecture)主要解决扩展性和并发的问题,是最容易扩展的架构
它的高扩展性,主要原因是没使用中央数据库,而是把数据都复制到内存中,变成可复制的内存数据单元。然后,业务处理能力封装成一个个处理单元(prcessing unit)。访问量增加,就新建处理单元;访问量减少,就关闭处理单元。由于没有中央数据库,所以扩展性的最大瓶颈消失了。由于每个处理单元的数据都在内存里,最好要进行数据持久化。
优点是高负载,高扩展性