集群、分布式(微服务)的理解

一、单机模式

计算机发展之初,规模不大的小型系统相对简单,所有的业务全部写在一个项目中,部署服务到一台服务器上,所有的请求业务都由这台服务器处理,这就是单机模式

随着互联网的扩张,当业务增长到一定程度的时候,服务器的硬件会无法满足业务需求,自然而然地想到一个程序不行就部署多个,这就是集群。


二、集群(Cluster)

集群就是单机的多实例,在多台服务器上部署多个服务,每个服务就是一个节点(Node),部署N个节点,处理业务的能力大约就提升N倍,这些节点的集合就叫做集群

集群模式下有个最重要的方法-负载均衡:协调集群里的每个节点均衡地接受业务请求。通俗地讲就是服务器A和服务器B相同时间段内处理的同类业务请求数量是相似的。

集群的特点
  • 扩展性好:集群只是单机的多个复制,没有改变单机的原有的代码结构,每次部署新节点只需要复制部署即可。    
  • 单个节点业务耦合度高、资源浪费:节点是多个业务处理集合(耦合高),每个具体业务的访问量可能差异很大,比如JD上账户管理模块的访问量肯定低于订单模块,然而账户管理模块和订单模块的部署数量是一样的(因为每个节点里都有这两个模块),相对订单模块来说,部署同样多的账户管理模块就是浪费。把单机节点不同的业务处理模块拆开了,这就是分布式。

三、分布式(微服务)

分布式结构就是将一个完整的系统,按照业务功能,拆分成一个个独立的子系统,在分布式结构中,每个子系统被称为“服务(service)”。这些子系统能够独立运行在web容器中,它们之间通过RPC(Remote Procedure Call 远程过程调用)方式通信。

举个栗子,假设开发一个在线商城,按照微服务的思想,我们需要按照功能模块拆分成多个独立的服务,如:用户服务、产品服务、订单服务、后台管理服务、数据分析服务等等。这一个个服务都是一个个独立的项目,可以独立运行。如果服务之间有依赖关系,那么通过RPC方式调用。

 

分布式的优点
  • 系统之间的耦合度大大降低,可以独立开发、独立部署、独立测试,系统与系统之间的边界非常明确,排错也变得相当容易,开发效率大大提升。    
  • 系统之间的耦合度降低,从而系统更易于扩展。我们可以针对性地扩展某些服务,就是对子系统集群。例如双11时,订单子系统、支付子系统需要集群,账户管理子系统不需要集群。    
  • 服务的复用性更高。比如,当我们将用户系统作为单独的服务后,该公司所有的产品都可以使用该服务作为用户系统,无需重复开发。
  • 12
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值