【科普】什么是集群、分布式、SOA?

2018-05-03 16:07    点击次数:

       image.png

今天,小久九决定跳过开场白,直接为大家带来一波科普!

我们今天的话题是:

什么是集群,什么是分布式,什么是SOA!

那么废话不多说,进入正题!


go.jpg


image.png

       传统的系统架构就是经典的三层结构,就一个项目跑在一个tomcat中,但是随着用户数量的增加,一个服务器一个tomcat肯定是不靠谱的,如果马云在杭州一个小地方,搞了一台服务器,一个tomcat,跑天猫的代码,然后让我们去访问,那我们估计是不可能看到网站首页的,它会一直处于宕机状态。

     2.jpg

       这时候可以使用集群的架构,就是说现在马云下血本买了5台服务器,每台服务器都跑天猫的代码,然后又搞了一个Nginx做负载均衡,这时候我们的请求由五台服务器完成,第一次请求是第一台服务器响应,第二次请求是由第二台服务器响应,这样可以应对的并发量就是之前的5倍,一切运转正常,就不会出现宕机的情况。

       传统架构:无论是SE应用还是WEB应用,传统架构都是表现层——业务层——持久层——数据库。

       总结:多台服务器跑的都是一套完整的代码,这就叫集群。


image.png

       随着淘宝的做大,功能也日益完善,加了很多的功能,在把一个项目都让一套tomcat跑,tomcat说它也很累,能不能少跑点代码,这时候分布式系统架构就产生了,我们把天猫这个大项目按功能划分为很多的模块,比如说单独一个系统处理订单,一个处理用户登录,一个处理后台等等,然后每一子系统都单独跑在一个tomcat中,和起来就是一个完整的天猫项目,这样对每一个tomcat就相对轻松一点。(如果某个子系统的压力还是很多,可以考虑对这个子系统再做集群)。

3.jpg

       总结:多台服务器合起来跑的才是一套完整代码,这就叫分布式。


image.png

       SOA:Service Oriented Architecture面向服务的架构。也就是把工程拆分成服务层、表现层两个工程。服务层中包含业务逻辑,只需要对外提供服务即可。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。

       这样做的好处就是,系统之间的调用很方便,A系统要用到B系统,直接调用B系统的服务层就可以了。

4.jpg

       总结:在分布式这种横向拆分的基础上又做了纵向拆分。就变成SOA架构。