title: 集群、分布式和微服务概念和区别
date: 2021-6-19
updated: 2021-6-19
tags:
- Java
- 集群、分布式和微服务概念和区别
categories: - 面试
- 集群、分布式和微服务概念和区别
分布式
所谓分布式系统,是指一个完整的应用系统被拆分后,分别部署到不同的网络节点中,这样的系统往往是一些大型的系统。这种做法的好处是,可以提高系统的运算能力。与分布式系统相对应的就是 单体应用系统,单体应用系统的思想是 all in one 思想, 就是全部在一起,一个系统的全部服务都集中在一个网络节点上。
集群
集群顾名思义,就是同一个任务被部署(放)在了多台服务器上面。所以这里面有一个重要的概念就是,每台服务器上放的东西都一样的。 也就是说处理的东西是一样的。只不过为了防止其中一台坏了,整个系统无法提供访问而已。 所以,集群解决了一个问题就是高可用。
分布式和集群的关系
分布式中的每一个服务我们可以称之为一个节点。 此处敲黑板, 那么万一这个节点 down了怎么办呢? 没关系,有没有忘记? 我们上面提到的【集群】? 对了,集群就是干这个事情的,所以,分布式中的每一个节点都可以用来做集群,防止节点 down 机。
微服务
微服务是一种风格了,具体来说就是一种架构上的风格,多个服务被放置在不同的服务器上面了, 那么每个服务之间是独立部署的,也就是说每个服务可以自己运行在自己的容器内。那么如果各个服务之间需要通信(互相调用)怎么办呢? 对了,大家是不是此刻就想到了大管家,我们如果有一个大管家,那么由这个大管家来管理各个服务之间的关系就好了,那么这个管家就叫做服务治理。 服务治理用来管理各个服务之间的调用、熔断、降级、配置、路由、负载等等。 那么在多个服务之间加入的这个大管家也就是服务治理和多个服务之间就是微服务了,所以,微服务是包括服务治理在内的。也就是说 :微服务=各个服务+服务治理。 重点:微服务是通过 RPC 或者Restful API 的方式进行服务之间的通信的,这点和分布式是不同的。同时,微服务也可以只部署在一台机器上。这点也是和分布式不同的 (分布式一定是部署在不同的机器上的)
去饭店吃饭就是一个完整的业务,饭店的厨师、配菜师、传菜员、服务员就是分布式;厨师、配菜师、传菜员和服务员都不止一个人,这就是集群;分布式就是微服务的一种表现形式,分布式是部署层面,微服务是设计层面。