传统集群架构:
集群:开始的时候在一台Tomcat上跑,之后随着访问量的增加,开始增加服务器,每台服务器上跑同样的代码,再将每台服务器上的Tomcat放到一起配置Tomcat集群,之后访问量再增加,就开始提高硬件配置,提高CPU、增加带宽等。
思考:有什么问题?
1、 模块之间耦合度太高,其中一个升级其他都得升级,即使只是页面上一个字写错了,也得把整个系统重新打包部署。
2、 开发困难,当前团队只能修改自己的代码,而所有团队的代码又都处在同一个系统里,修改起来为了不会对其它团队的代码产生影响,有很高的沟通成本。
3、 不能灵活的进行分布式部署,比如哪个模块压力大就给哪个模块添加服务器。
解决方法:
优点:
把模块拆分成独立的工程,单独运行。如果某一个点压力大可以对这一个点单独增加配置。其他的点不受影响。
缺点:
系统之间交互需要额外的工作量来进行接口的开发。
把系统拆分成多个工程,要完成系统的功能需要多个工程协作完成。这种形式叫做分布式。
分布式架构:
把系统按照模块拆分成多个子系统。
(将前台和后台系统分开,前台的访问量要远大于后台的访问量(仅仅几个管理员),前台中首页的访问量也远远大于订单系统的访问量,访问量的不同,需要的服务器的配置也就明显不同。)
优点:
1、把模块拆分,使用接口通信,降低模块之间的耦合度。
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目。
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
4、可以灵活的进行分布式部署,对压力大的模块单独进行扩容。
缺点:
系统之间交互需要使用远程通信,接口开发增加工作量。
集群架构:同一个业务部署在多个服务器上。(但是前端的访问量很大 后端访问量很小 因此后端并不需要特别多的服务器支持)
数据库对比:
Oracle:收费 性能最强
MySQL:免费 性能稍差