首页 > 编程知识 正文

微服务就是分布式吗,微服务一定是分布式吗

时间:2023-05-05 01:49:26 阅读:237695 作者:88

分布式:一个业务分拆多个子业务,部署在不同的服务器上

 

微服务:在设计一个商城系统的时候,比如有用户模块,支付模块,购物车模块,订单模块等,此时可以采用SOA(面向服务的架构)模型,把这些功能模块拆分出来,做成一个个服务,如用户服务,支付服务等。这样就成了多个服务组成一个完整的商城系统。

分布式:上边拆分出来的一个个服务就是微服务,这些服务之间通过良好的接口和协议联系起来。此时就要考虑如何部署这些微服务了,是选择部署到一个服务器上呢,还是部署到不同的服务器上。前者是微服务与分布式的细微区别,后者就是所谓的分布式。 集群:商城系统可以是没有进行拆分的服务,即所有的功能模块,如用户模块,支付模块等都是集成在一个应用上,即所谓的单体应用。可以把单体应用或者用户模块的微服务部署到多个服务器上,这样多个服务器提供了相同的服务,这就是所谓的集群。

 

去饭店吃饭就是一个完整的业务,饭店的厨师、配菜师、传菜员、服务员就是分布式;厨师、配菜师、传菜员和服务员都不止一个人,这就是集群;分布式就是微服务的一种表现形式,分布式是部署层面,微服务是设计层面。

微服务不一定是分布式,分布式一定是微服务

 

以上是网友说的比较有道理的解释,下面是我个人的认为

分布式:就是将系统分成多块,部署在不同的服务器上,分开部署,但是每个服务器之间通过接口进行沟通,这个分可以是横向的也可以是众向的(个人拙见),比如系统的主体在服务器A,数据库在服务器B,前端在服务器C,某种程度上也算分布式。

 

微服务:就是按模块将业务更加细分,是一种设计思想,比如系统有支付模块,商品模块,订单模块,登录模块,按这几种分成小的服务,他们之间没有太多的耦合,是通过接口等形式进行访问和沟通,一个微服务出问题,其他微服务还是可以正常运行。而每个模块都是一个微服务

两者联系:如果将一个系统中的几个微服务部署在不同服务器上,那么在部署方式上就是分布式的。

 

集群:相同的系统或者服务部署到多个服务器上,就是集群,比如游戏服,每个游戏服其实都是包含了所有的代码,但是他部署在不同的服务器上,用户访问时,可以选择不同的服务器,或者系统会安排他进入人数较少的服务器,已减少其他服务器的压力,集群一般是为了横向扩展服务群的服务能力。

当然也可以将微服务进行集群的方式,比如,我的登录模块的微服务部署到10台服务器上,支付的模块微服务部署到20台服务器上,然后用户登录时,系统将用户安排到人数较少的服务器进行登录服务,然后,支付的时候也是如此。而这些集群时的调控可以用zooke进行。数据发布/订阅

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。