单体构架:
所有的应用、服务都打包成一个jar包,部署在一个Tomcat内,通常共用一个数据库,有持久层,表现层,服务层。部署简单,代码方便维护,适合体量小的业务。
集群:
单体构架适合做集群,把单体的应用复制多份分别用tomcat部署,用来提升性能。
负载均衡:
按照一定算法将请求平均分发到多个应用上,提升整体项目的流畅性
算法:
轮询(round robin) : 依次将请求分配到各个后台服务器中,默认的负载均衡方式
权重(weight) : 根据权重值将请求分配到后台服务器中,权重值越大,分配比例越高
IP_HASH:按照ip地址进行hash运算,同一ip的请求会被分配到相同的机器上
url_hash : 根据请求的url的hash值将请求分到不同的机器中。
fair:根据服务器响应时间来分发请求,时间越短分发的请求越多
分布式构架:
把一个项目分成多个业务,每个业务都用一个Tomcat去运行,每个小业务都是单体架构,每个应用之间靠API通信,每个业务也可以做集群。
SOA:
也属于分布式架构,只是比分布式架构更加细分,它是面向服务的架构,把分布式架构划分成未了表示层和服务层,表现层和业务层使用API通信,表现层处理业务,服务层对外展示,进一步降低了耦合,使业务更加的细分,但需要技术增加,对技术人员要求较高,通信变多所有体量大时对性能有一定影响。
微服务:
与SOA很像,把一个应用拆分成很多服务,每个服务单独运行,互不干扰,且都拥有自己的数据库,服务之间使用Http通信,微服务可以将业务拆分的很小,所以业务扩展能力很强,而且服务之间无耦合,单个服务简单,开发维护方便,如果做了集群容错和负载会极强,但微服务过多通信时间也会相应增加,对性能也会有一定影响。