平常一个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 面向
来源:CSDN
作者:醉梦洛
链接:https://blog.csdn.net/weixin_39921821/article/details/103461166