将一套系统拆分成不同子系统部署在不同服务器上(这叫分布式),然后部署多个相同的子系统在不同的服务器上(这叫集群),部署在不同服务器上的同一个子系统应做负载均衡。
分布式:需要按照功能点把大系统拆分成各个独立的子系统,每个子系统对应每个独功能,对每个子系统(专业名词叫节点)进行集群,需要系统之间配合才能完成整个业务逻辑。
分布式和集群的区别(关系)?
分布式架构:把一个系统拆分成多个子系统,各个子系统进行tomcat集群。
集群:同一个项目部署到多台服务器上。
集群能保证系统的并发量和高可用。保证集群高可用,必须要有三台或三台以上的服务器。Redis集群,五台服务器间采用自动选举机制选出主从服务器,采用乒乓机制连接,当有其中一台机器挂掉,超过半数以上机器乒乓机制连不上一台机器时,我们就可以发现这个问题,并拿坏掉的服务器去修理。
优点:
1、把模块拆分,使用接口通信,降低模块之间的耦合度(降低它们的依赖程度和关联性)。
2、把项目拆分成若干个子项目,不同的团队负责不同的子项目(对于团队来说可以更好地分配任务)。
3、增加功能时只需要再增加一个子项目,调用其他系统的接口就可以。
4、可以灵活的进行分布式部署。
缺点:
1、系统之间交互需要使用远程通信,接口开发增加工作量。
2、各个模块有一些通用的业务逻辑无法共用。(基于SOA架构通过Dubbo提供服务解决这一问题)
3、沟通成本很高。
原文:https://www.cnblogs.com/whirlwind/p/10638986.html