高并发与服务器集群和分布式附带SOA架构

平常一个B2B平台交互时,就需要服务器集群和分布式处理

一.服务器集群

     如果一个Tomcat 可以处理500个并发请求(实际可以处理200~300的并发就不错了),那么10000个并发请求,就需要20台服务器做Tomcat集群,当tomcat集群中节点数据增加,服务器能力先增加后下降。所以集群中节点(服务器)数量不能太多,一般也就5个左右(节点如果多了就会使服务器性能呈抛物线形式发展),所以通过增加硬件来提高服务器性能是不可能了(就是因为Session复制问题),那么就需要软件来解决这个问题 ;

   当然中间就需要一台负载均衡服务器(如:Nginx),然后将并发请求分布在两台服务器上或者更多服务器上,比如在登录tomcat1后,将登录信息进行session共享给tomcat2,这样才能保证好的体验度,就是说平常在硬件能解决问题的情况下,绝对不用软件,因为软件改起来比较麻烦,那就花钱呗,就是增加硬件服务器。

  

注:关注点

     Tomcat分享/广播登录信息(Session复制导致集群节点太多,才会使性能呈抛物线)。

     服务器集群按照自己的理解就是一个工程运行在多个服务器上,自然做的事就是同一件事喽,达到共享信息,复制的功能。

二.分布式

1.个人理解:

     需要按照功能点将系统进行拆分,拆分成独立的功能。单独为某一个节点添加服务器,需要系统之间配合才能完成整个业务逻辑,叫做分布式。

主要解决Session复制的问题,一般都是登录使用Session复制。那采用分布式的话,就可以考虑把登录单独的放在一个系统中进行维护

        把一个项目拆分成几个独立的小工程,从图中可以看出,用单点登录系统来处理Session问题,如果前台系统并发量高,那就给前台系统加缓存。再如果后台系统并发量没那么高,那就少配台服务器,总之就是那块压力大就单独给那块加服务器,压力小的就少加台服务器,这样就显得比较灵活了,每一个功能点就是一个独立的服务器。这样一来,像以前的话,在一个大工程里面,如果前台系统想要调用订单系统的某些东西,只需要注入进来就行了;但是现在每个功能点独立之后,就不能这样调了,因为现在变成了服务器与服务器之间的通讯了,那么就需要用到WebService或者Socket来支持了 。

注:分布式也是多台服务器,但是它们和集群的群别就是做的事都不一样呀!不过分布式单独的服务器又各自能搞成集群的类       型。比如:前台系统需要搜索,那么就需要搜索系统来配合;如果想要下订单,那么就需要与订单系统来配合。反之依然,也就是说每个分布式的节点都可以配置成服务器集群。

2.总结

分布式架构:多个子系统相互协作才能完成业务流程,系统之间需要进行通信;

集          群:同一个工程部署到多台服务器上;

分布式架构:

把系统按照模块拆分成多个子系统。

优点:

1️⃣.把模块进行拆分,使用接口通信,降低模块之间的耦合度。

2️⃣.把项目拆分成若干个子项目,不同的团队负责不同的子项目。

3️⃣.增加功能时只需要再增加一个子项目,调用其它系统的接口就可以

4️⃣.可以灵活的进行分布式部署。

缺点:

1️⃣.系统之间交互需要使用远程通信,接口开发增加工作量。

2️⃣.各个模块之间有一些通用的业务逻辑无法共用。

三.SOA架构

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

 来图示就可以看出,把系统拆分成了表现层和服务层两层,这样的好处就是啥?把上面的表现层所共需的业务逻辑放在了一起即服务层中,这种就可以共同互用了,提供了一定的便捷性。当然虽然架构层次是方便了互通共用,但是表现层的那些系统照样是单个的子系统,即是单独的war包,和服务层之间通讯联系时还是需要WebService和Socket的。 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章