什么是分布式?
分布式也就是微服务中的一种体系结构,那么提到分布式、就要先说说单机和集群
1、单机结构
单机就是全部业务所有写在一个项目中,部署服务到一台服务器上,全部请求业务都由这台服务器处理,显示,当业务增加到必定程度的时候,服务器的硬件会没法知足业务需求,天然而然的想到一个程序步行就部署多个。
2、集群
-
集群就是单机的多实例,在多个服务器上部署多个服务,每一个服务就是一个节点,部署N个节点,处理业务的能力就提高N倍,这些节点的结合就叫作集群。
-
负载均衡:协调群里的每一个节点均衡地接收业务请求。通俗的讲就是服务A和服务B相同时间段内处理的同类业务请求数量是类似的
集群的特色:

-
扩展性好:集群只是单机的多个复制,没有改变单机的原有的代码结构,每次部署新节点只须要复制部署便可。
-
单个节点业务耦合度高、资源浪费:节点是多个业务处理集合(耦合度高),每一个具体业务的访问量可能差别很大,好比JD上帐户管理模块的访问量确定低于订单模块。
-
然而帐户管理模块和订单模块的部署数量是同样的(由于每一个节点里独有这两个模块),相对于订单模块来讲,部署一样多的帐户管理模块就是浪费。
-
那就把单机节点不一样的业务处理模块拆开,这就是分布式了。
3、分布式(微服务)
分布式结构就是一个完整的系统,按照业务功能,拆分红一个个独立的子系统,在分布式结构中,每一个子系统就被称为“服务”。这些子系统可以独立运行在Web容器中,他们之间经过RPC方式通讯。
举个例子,假如须要开发一个在线商城。按照微服务的思想,咱们须要按照功能模块拆分红多个独立的服务,如:用户服务、产品服务、订单服务、后台管理服务、数据分析服务等。
这一个个服务都是一个个独立的项目,能够独立运行。若是服务之间有依赖关系,那么经过RPC方式调用。

分布式的优势:
-
系统之间的耦合度大大下降,能够独立开发、独立部署、独立测试,系统与系统之间的边界很是明确,排错也变得至关于容易,开发效率大大提高。
-
系统之间的耦合性下降,从而系统更易于扩展,咱们能够针对性地扩展某些服务,就是对子系统集群。例如:双十一时,订单子系统、支持子系统须要集群,帐号管理子系统不须要集群。
-
服务的复用性更高,好比:咱们将用户系统做为单独的服务后,该公司全部的产品均可以使用该系统做为用户系统,无需重复开发。
4、分布式与集群的区别
-
将一套系统拆分红不一样子系统部署在不一样服务器上(这叫分布式)
-
署多个相同的子系统在不一样的服务器上(这叫集群)
-
部署在不一样服务器上的同一个子系统应作负载均衡。
-
分布式:一个业务拆分为多个子业务,部署在多个服务器上 。
-
集群:同一个业务,部署在多个服务器上 。
5、图解分布式


6、我的理解 用生活中的例子来讲明: 小饭店原来只有一个厨师,切菜洗菜备料炒菜全干。后来客人多了,厨房一个厨师忙不过来,又请了个厨师,两个厨师都能炒同样的菜,两个厨师的关系是集群。 为了让厨师专心炒菜,把菜作到极致,再请了个配菜师负责切菜,备菜,备料 ... 厨师和配菜师的关系是分布式。 一个配菜师也忙不过来了,又请了个配菜师,两个配菜师关系是集群。 一个配菜师因故请假了,可是其他的配菜师仍是该作什么作什么,只是没请假的配菜师任务均匀的加量了,但他们的任务和职责是不变的,这是集群。
欢迎关注本站公众号,获取更多信息