TypechoJoeTheme

Toasobi的博客

什么是分布式?

本文最后更新于2022年09月21日,已超过728天没有更新。如果文章内容或图片资源失效,请留言反馈,我会及时处理,谢谢!

分布式也就是微服务中的一种体系结构,那么提到分布式、就要先说说单机和集群

  • 一、单机结构

    单机就是所有业务全部写在一个项目中,部署服务到一台服务器上,所有请求业务都由这台服务器处理,显示,当业务增长到一定程度的时候,服务器的硬件会无法满足业务需求,自然而然的想到一个程序步行就部署多个。

  • 二、集群

集群就是单机的多实例,在多个服务器上部署多个服务,每个服务就是一个节点,部署N个节点,处理业务的能力就提升N倍,这些节点的结合就叫做集群。
负载均衡:协调群里的每个节点均衡地接收业务请求。通俗的讲就是服务A和服务B相同时间段内处理的同类业务请求数量是相似的
集群的特点:

扩展性好:集群只是单机的多个复制,没有改变单机的原有的代码结构,每次部署新节点只需要复制部署即可。

单个节点业务耦合度高、资源浪费:节点是多个业务处理集合(耦合度高),每个具体业务的访问量可能差异很大,比如JD上账户管理模块的访问量肯定低于订单模块。

然而账户管理模块和订单模块的部署数量是一样的(因为每个节点里独有这两个模块),相对于订单模块来说,部署同样多的账户管理模块就是浪费。
那就把单机节点不同的业务处理模块拆开,这就是分布式了。

  • 三、分布式(微服务)

    分布式结构就是一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统就被称为“服务”。这些子系统能够独立运行在Web容器中,他们之间通过RPC方式通信。

举个例子,假如需要开发一个在线商城。按照微服务的思想,我们需要按照功能模块拆分成多个独立的服务,如:用户服务、产品服务、订单服务、后台管理服务、数据分析服务等。

这一个个服务都是一个个独立的项目,可以独立运行。如果服务之间有依赖关系,那么通过RPC方式调用。

  • 分布式的优点

系统之间的耦合度大大降低,可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当于容易,开发效率大大提升。
系统之间的耦合性降低,从而系统更易于扩展,我们可以针对性地扩展某些服务,就是对子系统集群。例如:双十一时,订单子系统、支持子系统需要集群,账号管理子系统不需要集群。
服务的复用性更高,比如:我们将用户系统作为单独的服务后,该公司所有的产品都可以使用该系统作为用户系统,无需重复开发。

  • 四、分布式与集群的区别

**将一套系统拆分成不同子系统部署在不同服务器上(这叫分布式)
署多个相同的子系统在不同的服务器上(这叫集群)
部署在不同服务器上的同一个子系统应做负载均衡。
分布式:一个业务拆分为多个子业务,部署在多个服务器上 。
集群:同一个业务,部署在多个服务器上 。**

朗读
赞(0)
评论 (0)