点击上方“不太厉害的程序猿”,选择“置顶或者星标”

你关注的就是我关心的!

来源说明:部分信息来源于csdn

概念: 集群是个物理形态,分布式是个工作方式。

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

2.集群:同一个业务,部署在多个服务器上


分布式是指将不同的业务分布在不同的地方

而集群指的是将几台服务器集中在一起,实现同一业务。

分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。 

举例:就比如新浪网,访问的人多了,他可以做一个集群,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。

而分布式,从狭意上理解,也跟集群差不多,但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。

分布式的每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可访问了。简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。

例如:如果一个任务由 10 个子任务组成,每个子任务单独执行需 1 小时,则在一台服务器上执行该任务需 10 小时。

采用分布式方案,提供 10 台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是 Hadoop 的 Map/Reduce 分布式计算模型)

而采用集群方案,同样提供 10 台服务器,每台服务器都能独立处理这个任务。假设有 10 个任务同时到达,10 个服务器将同时工作,1 小时后,10 个任务同时完成,这样,整体来看,还是 1 小时内完成一个任务!


好的设计应该是分布式和集群的结合,先分布式再集群,具体实现就是业务拆分成很多子业务,然后针对每个子业务进行集群部署,这样每个子业务如果出了问题,整个系统完全不会受影响。


   另外,还有一个概念和分布式比较相似,那就是微服务

微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。

区别


1.分布式:

将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务

上面:service A、B、C、D 分别是业务组件,通过API Geteway进行业务访问

注:分布式需要做好事务管理。

2.集群模式

集群模式是不同服务器部署同一套服务对外访问,实现服务的负载均衡。区别集群的方式是根据部署多台服务器业务是否相同。

注:集群模式需要做好session共享,确保在不同服务器切换的过程中不会因为没有获取到session而中止退出服务。

一般配置Nginx的负载容器实现:静态资源缓存、Session共享可以附带实现,Nginx支持5000个并发量。

3.微服务架构

微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。

分布式和微服的架构很相似,只是部署的方式不一样而已。


分布式是否属于微服务?

答案是肯定的。微服务的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。微服务是架构设计方式,分布式是系统部署方式,两者概念不同

推荐阅读:

     解决VM 与 Device/Credential Guard 不兼容(全网最新解决思路)

点击再看,或者转发到朋友圈,都是对我最好的支持!

分布式和微服务区别_分布式、集群、微服务到底有啥区别?相关推荐

  1. RAC集群时间同步服务

    集群时间同步服务 在集群中的两个 Oracle RAC 节点上执行以下集群时间同步服务配置. Oracle Clusterware 11g 第 2 版及更高版本要求在部署了 Oracle RAC 的集 ...

  2. mysql集群与分布式数据库_数据库集群与分布式系统的区别

    1. 集群是个物理形态,分布式是个工作方式. 只要是一堆机器,就可以叫集群,他们是不是一起协作着干活,这个谁也不知道:一个程序或系统,只要运行在不同的机器上,就可以叫分布式,嗯,C/S架构也可以叫分布 ...

  3. .NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一)

    原文:.NET Core微服务之路:基于Consul最少集群实现服务的注册与发现(一) Consul介绍 Consul是HashiCorp公司推出的开源工具[开源地址:https://github.c ...

  4. 哨兵模式原理_Redis哨兵、复制、集群的设计原理,以及区别

    谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能. ...

  5. Redis系列教程(五):Redis哨兵、复制、集群的设计原理,以及区别

    前一篇文章高并发架构系列:Redis为什么是单线程.及高并发快的3大原因详解谈了Redis高并发快的3个原因,本篇主要谈Redis的高可用,两篇合起来就可以把redis的高并发和高可用搞清楚了. 谈到 ...

  6. 分布式计算、并行计算及集群、网格、云计算的区别

    转自: http://blog.163.com/litianyichuanqi@126/blog/static/1159794412012387453794/ 并行计算:并行计算是相对于串行计算来说的 ...

  7. centos7 部署glusterfs集群,服务端和客户端演示

    centos7 部署glusterfs集群,服务端和客户端演示 说明 glusterfs 分布式文件服务,详细可以百度 官网文档: https://docs.gluster.org/en/latest ...

  8. Redis的高可用详解:Redis哨兵、复制、集群的设计原理,以及区别

    谈到Redis服务器的高可用,如何保证备份的机器是原始服务器的完整备份呢?这时候就需要哨兵和复制. 哨兵(Sentinel):可以管理多个Redis服务器,它提供了监控,提醒以及自动的故障转移的功能. ...

  9. Kubernetes 集群 DNS 服务发现原理

    简介:本文介绍 Kubernetes 集群中 DNS 服务发现原理. 本文介绍 Kubernetes 集群中 DNS 服务发现原理. 前提需要 拥有一个 Kubernetes 集群(可以通过 ACK ...

最新文章

  1. 用composer安装laravel-bjyblog
  2. grep检索关键字的命令_linux系统中java线上问题常用排查命令
  3. 二叉树的深度优先和广度优先遍历
  4. 阿里云江岑:云原生在边缘形态下的升华
  5. (luogu4180) [Beijing2010组队]次小生成树Tree
  6. OpenCV C++ 06 - Histogram Equalization of a Grayscale image with OpenCV
  7. 浅谈Linux磁盘存储管理续【逻辑卷管理(LVM)】
  8. java8流分组 性能_Java性能教程– Java 8流有多快?
  9. 【转】Sql server锁,独占锁,共享锁,更新锁,乐观锁,悲观锁
  10. SpringBoot+Vue表单文件上传
  11. 大数据学习笔记28:MR案例——多输出源处理成绩
  12. 五年级计算机教室使用记录,五年级班会记录.doc
  13. [Leetcode] spiral matrix ii 螺旋矩阵
  14. Apex 获取真正的IP地址
  15. webuploader横向按钮样式
  16. 解决word中Mathtype按钮灰色问题(亲测有效)
  17. 穷爸爸富爸爸的作者破产了,这本书是垃圾还是宝藏?
  18. 近岸蛋白通过注册:预计9个月营收2.3亿 同比降幅超15%
  19. 3种思路,打造用户画像的标签体系
  20. 广东工业大学计算机研究生学硕就业,广州大学与广东工业大学2018年MPAcc就业平均薪资解析!...

热门文章

  1. MODBUS ASCII协议和RTU协议的比较 -----和利时PLC采用Modbus RTU
  2. 安装 SQL Server Compact Edition 及 与PC 数据同步的部署
  3. TensorFlow学习笔记--第一节 hello TensorFlow
  4. Java中List集合的三种遍历方式(全网最详)
  5. 平衡二叉树删除_自平衡二叉树实现及时间复杂度分析
  6. linux生成ssl证书给haproxy,如何为多个SSL证书配置HAProxy
  7. Restful规范-开发api接口
  8. redis安装与安全设置
  9. 【leetcode】First Missing Positive(hard) ☆
  10. [ios] NSSet,NSMutableSet[zhuan]