分布式和集群的区别,坚果云用的是哪一种呢?

2019年5月27日 分类:实用工具 作者:网盘

近来分布式架构甚至嚣尘上,可是你对各种架构方式有一个大概了解吗,这些不同的架构在咱们的生活中又有哪些实际应用呢,今天咱们就一起来探讨一下。

 

单机结构:

一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上就好了。整个项目所有的服务都由这台服务器提供。这就是单机结构。举个栗子,你现在如果有一台微机或者一台电脑,你的项如果能够在上面正常运行,你就可以简单粗暴的把他理解为单机结构。

优点:部署实施简单,易于维护,成本低,共享程度高,一致性好

缺点:处理能力是有限的,当业务增长到一定程度的时候,单机的硬件资源将无法满足你的业务需求。此时便出现了集群模式

 

集群结构:

简单地说,当单机处理到达瓶颈的时候,把单机复制几份,这样就构成了一个“集群”。集群中每台服务器就叫做这个集群的一个“节点”,所有节点构成了一个集群。一般都希望响应用户请求的是负载最小的节点,要实现这个功能,就需要在所有节点之前增加一个“调度者”的角色,用户的所有请求都先交给它,然后它根据当前所有节点的负载情况,决定将这个请求交给哪个节点处理。这个“调度者”有个厉害的名字——负载均衡服务器。

不用说也知道,咱们坚果云就是集群结构的典型代表,简单来说,你可以把一台服务器理解为一个节点。同时由于咱们坚果云结构精简异常稳定,所以一般情况下都不需要用到负载均衡,直接把主节点当成生产节点就OK了。

优点:扩展性强,业务需求增大直接增加服务器就行了;架构简单性能稳定;

缺点:当业务发展到一定成度时,你会发现一个问题——无论怎么增加节点,貌似整个集群性能的提升效果并不明显了。这个时候就可以考虑分部署方式。

 

分部署结构:

分布式结构就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”。这些子系统能够独立运行在web容器中,它们之间通过RPC方式通信。以坚果云企业版为例,按照功能模块拆分成多个独立的服务,如生产节点、日志审计、在线杀毒、全文检索、异地灾备。这一个个服务都是一个个独立的项目,可以独立运行。如果服务之间有依赖关系,那么通过RPC方式调用。

优点:

耦合度低,可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当容易,开发效率大大提升。

扩展性强,我们可以针对性地扩展某些服务。假设对于在线杀毒功能的需求大,我们可以针对性地提升在线杀毒的节点数量,而对于后台系统,节点数量维持原有水平即可。

复用性更高。比如,当我们将用户系统作为单独的服务后,该公司所有的产品都可以使用该系统作为用户系统,无需重复开发。

 

 

以上是对三种部署方式的分析,事实上没有最好的架构,只有最契合场景的最适用的架构,一个架构的选择,是架构师深思熟虑、权衡投入产出比的综合结果。只要架构设计的合理就可以了。

阅读已结束,喜欢的话就点个赞吧
注册坚果云网盘
还有其他问题,可以咨询小坚果咨询小坚果
继续阅读