-
2021-10-29 09:55:42
刚接触微服务及分布式这块,对这些概念有些懵圈,看了一些文章了解了一下,为了不忘记决定记录一下,如有理解不对的地方,欢迎各位大佬指教
微服务
微服务简单理解就是将功能模块的多个功能,拆分为多个小功能服务,具体拆分多细的颗粒度,取决于需求项目需要,在服务之间可以通过RPC或其它方式来相互交互。
分布式
分布式简单理解就是将服务分散部署在不同的服务器上,服务与服务之间的调用也是通过RPC或其它方式来交互
关系
微服务在生产环境下大部分是通过分布式部署的,但是分布式部署的应用不一定是微服务架构的,比如集群部署,它是把相同应用复制到不同服务器上,但是逻辑功能上还是单体应用
区别
1、微服务指的是将应用模块拆分成细颗粒度的手段,为了达到降低开发成本,以及达到松耦合的目的。
2、分布式其实可以理解成一种部署方式,将服务分别部署在不同的服务器上达到高并发,高可用的目的。更多相关内容 -
Java优秀书单推荐 分布式 微服务 架构
2017-11-19 13:35:46Java优秀书单推荐 分布式 微服务 架构 并发 jvm 网络 -
中间件 分布式 微服务
2018-11-26 16:22:03分布式计算环境(Distributed Computing Environment): 分布式应用程序运行的通用环境,即使机器、操作系统、网络不同。如一个负载均衡服务器Load Balance(如Nginx),多个Web服务器Web Ser...中间件:
连接独立的应用程序或系统的软件。即使应用程序或系统有不同的接口,通过中间件也能交换数据。类比主板,可沟通U盘、磁盘、光盘的不同接口,进行数据分享。分布式计算环境(Distributed Computing Environment):
分布式应用程序运行的通用环境,即使机器、操作系统、网络不同。如一个负载均衡服务器Load Balance(如Nginx),多个Web服务器Web Server(如Tomcat),一个缓存服务器Cache Server,(如memcache),以及一个共享数据库DB(如Mysql),就可供多个客户端Client调用了,当然负载均衡服务器、缓存服务器、共享数据库也可以是多个。
完备的分布式体系:
分布式任务处理服务:负责具体的业务逻辑处理
分布式节点注册和查询:负责管理所有分布式节点的命名和物理信息的注册与查询,是节点之间联系的桥梁
分布式DB:分布式结构化数据存取
分布式Cache:分布式缓存数据(非持久化)存取
分布式文件:分布式文件存取
网络通信:节点之间的网络数据通信
监控管理:搜集、监控和诊断所有节点运行状态
分布式编程语言:用于分布式环境下的专有编程语言,比如Elang、Scala
分布式算法:为解决分布式环境下一些特有问题的算法,比如解决一致性问题的Paxos算法
集群是机器的管理方式,分布式是数据的操作方式。
一个任务拆解成多个小任务,运行在不同的机器上,是分布式;相同的任务,可以运行在不同的机器上,是集群,如百度时的搜索任务可在不同的服务器上运行。分布式就像把一个长的算式分成几个短算式,让几个人算。集群就像几个长算式,让几个人算。
微服务:
服务之间采用轻量级的通信机制互相沟通(通常是基于HTTP的RESTful API),每个服务都围绕着具体的业务进行构建,并且能够被独立的构建在生产环境。如WebService中同一模块操作可集聚在一个服务网址上。将单体服务根据业务逻辑拆解为独立的微服务,增强应用模块化,可供独立的团队进行开发、部署、维护、扩展。
-
分布式和微服务的区别
2022-01-20 23:30:07分布式和微服务的区别 1.颜老师,分布式和微服务有什么区别呢?网上说啥的都有,越看越晕了。 答:分布式的核心就一个字:拆。只要是将一个项目拆分成了多个模块,并将这些模块分开部署,那就算是分布式。 如何拆呢...分布式和微服务的区别
1.颜老师,分布式和微服务有什么区别呢?网上说啥的都有,越看越晕了。答:分布式的核心就一个字:拆。只要是将一个项目拆分成了多个模块,并将这些模块分开部署,那就算是分布式。
如何拆呢?有两种方式:水平拆分,或垂直拆分(也称为“横向拆分”和“垂直拆分”),具体如下:
水平拆分:根据“分层”的思想进行拆分。例如,可以将一个项目根据“三层架构”拆分成 表示层(jsp+servlet)、业务逻辑层(service)和数据访问层(dao),然后再分开部署:把表示层部署在服务器A上,把service和dao层部署在服务器B上,然后服务器A和服务器B之间通过dubbo等RPC进行进行整合(在左下角的“阅读原文”里有dubbo的视频课程,可以点击学习),如图所示。
**垂直拆分:**根据业务进行拆分。例如,可以根据业务逻辑,将“电商项目”拆分成“订单项目”、“用户项目”和“秒杀项目”。显然这三个拆分后的项目,仍然可以作为独立的项目使用。像这种拆分的方法,就成为垂直拆分。
什么是微服务呢?
从名字就能知道,“微服务”就是非常微小的服务。
微服务可以理解为一种非常细粒度的垂直拆分。例如,以上“订单项目”本来就是垂直拆分后的子项目,但实际上“订单项目”还能进一步拆分为“购物项目”、“结算项目”和“售后项目”,如图。
现在看图中的“订单项目”,它完全可以作为一个分布式项目的组成元素,但就不适合作为微服务的组成元素了(因为它还能再拆,而微服务应该是不能再拆的“微小”服务,类似于“原子性”)。
总结:
分布式:拆了就行。
微服务:细粒度的垂直拆分。
-
架构解密-从分布式到微服务_带索引书签目录超清扫描版
2018-11-10 23:34:59架构解密-从分布式到微服务_带索引书签目录超清扫描版。 这个是扫描版,带书签,质量超高超清晰的。 -
什么是集群、分布式和微服务?
2022-02-22 16:34:57什么是集群、分布式和微服务? 什么是集群 集群是指将多台服务器集中在一起,每台服务器都实现相同的业务,做相同的事情。但是每台服务器并不是缺一不可,存在的作用主要是缓解并发压力和单点故障转移问题。我们可以...什么是集群、分布式和微服务?
什么是集群
集群是指将多台服务器集中在一起,每台服务器都实现相同的业务,做相同的事情。但是每台服务器并不是缺一不可,存在的作用主要是缓解并发压力和单点故障转移问题。我们可以利用一些廉价的符合工业标准的硬件构造高扩展、高性能、低成本、高可用的系统,简单的来说就是同一个业务,部署在多个服务器上。
什么是分布式
分布式服务是指将多台服务器集中在一起,服务是分散部署在不同的机器上的。每台服务器都实现总体中的不同业务,做不同的事情。一个服务可能负责几个功能,是一种面向 SOA 的架构。各分开部署的部分彼此通过各种通讯协议交互信息,并且每台服务器都缺一不可,如果某台服务器故障,则部分功能缺失,或导致整体无法运行。分布式存在的主要作用是大幅度的提高效率,缓解服务器的访问和存储压力。区别分布式的方式是一个业务分拆多个子业务,部署在不同的服务器上。
什么是微服务
微服务的概念和分布式比较相似,微服务是一种架构风格。简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能。每个微服务仅关注于完成一件任务并很好地完成该任务,这个服务可以单独部署运行。 各个微服务之间是松耦合的,服务之间可以通过 RPC 来相互交互。每个微服务都是由独立的小团队开发、测试、部署,上线,负责它的整个生命周期。
在做架构设计时,当你估算过最大用户量和并发量后,计算出单个应用服务器能否满足需求。如果用户量只有几百人的小应用,单体应用就能搞定,即所有应用部署在一个应用服务器里。如果是很大用户量,且某些功能会被频繁访问,或者某些功能计算量很大,建议将应用拆解为多个子系统,各自负责各自功能,这就是微服务架构。
微服务的设计是为了不因为某个模块的升级和 BUG 影响现有的整个系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,它也可以是同一个服务器。
微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低。由于每个微服务都由独立的小团队负责,因此它敏捷性更高。分布式服务最后都会向微服务架构演化,这是一种趋势。不过服务微服务化后带来的挑战也是显而易见的,例如服务粒度小,数量大,后期运维难度会增大。
集群、分布式、微服务的异同及联系
- 分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
例如:如果一个任务由 10 个子任务组成,每个子任务单独执行需 1 小时,则在一台服务器上执行该任务需 10 小时。
采用分布式方案,提供 10 台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是 Hadoop 的 MapReduce 分布式计算模型)
采用集群方案,同样提供 10 台服务器,每台服务器都能独立处理这个任务。假设有 10 个任务同时到达,10 个服务器将同时工作,1 小时后,10 个任务同时完成。这样整体来看,还是 1 小时内完成一个任务。
2.分布式与微服务的关系
分布式和微服务的架构很相似,只是部署的方式不一样而已。生产环境下的微服务肯定是分布式部署的,分布式部署的应用不一定是微服务架构的。比如集群部署,它是把相同应用复制到不同服务器上,但是逻辑功能上还是单体应用。总结:
如果你的业务很简单,访问量也很少,那所有应用放一台服务器也可以流畅的运行,这个时候连集群都不需要用。
如果你的访问量很少,但是业务很复杂,打个比方,以电商下单为例,下单的过程,需要提交订单,支付,同事需要核查仓库是否有库存,然后再把地址发给第三方物流下单,如果这些事情放一起做,需要30秒。用户需要等待30秒才能看见自己是否购买成功了,这样体验非常不好,即使你的平台一天只成交100单, 访问量很小,用户体验还是不好。这个时候你可以用分布式来解决这个问题,把支付,查库存,通知第三方物流等拆分成5个或者更多的工作。这样,用户体验大大提高,几秒就可以完成一次购物。
如果你的访问量很大,每个流程步骤很复杂,那这个时候,你可以将步骤分布式,再多分配几个服务器集群,这个时候用微服务架构就更合适了。根据之前运营app的经验,日访问量几百万,每个交互都是2秒以内的应用,只要带宽足够,将web和数据库分离加上一个redis缓存,2台主流服务器就足够了。
分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。
分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。
分布式和微服务的架构很相似,只是部署的方式不一样而已。
-
集群,分布式,微服务概念和区别理解
2022-01-27 22:08:13集群是个物理形态,分布式是个工作方式。 分布式:一个业务分拆多个子业务,部署在不同的服务器上 集群:同一个业务,部署在多个服务器上 1:分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器... -
前后端分离 集群负载均衡 分布式 微服务
2021-05-16 22:02:56微服务 微服务架构:将原来在一个应用中开发的多个模块进行拆分,单独开发和部署 保证可用性、性能 分布式强调系统的拆分,微服务也是强调系统的拆分,微服务架构属于分布式架构的范畴; 并且到目前为止,微服务并... -
分布式和微服务是什么?二者的区别又是什么?
2022-01-20 23:32:05一、分布式系统 在《分布式系统原理与范型》一书中有如下定义: “分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像单个相关系统”; 分布式系统是由一组通过网络进行通信、为了完成共同的任务而... -
集群、分布式、微服务的概念及异同
2022-03-11 00:29:38生产环境下的微服务肯定是分布式部署的,分布式部署的应用不一定是微服务架构的 (4)、在设计与开发中我们可以将分布式与集群的分开吗? 分布式的主要功能是将我们的系统模块化,将系统进行解耦,方便维护和开发;... -
分布式,微服务,集群和SOA的概念,区别?
2022-01-10 13:07:51分布式:服务的不同模块部署在不同的服务器上,单个节点不能提供完整的服务,需要多节点协调才能提供服务,也可以是相同组件部署在不同节点上,但节点通过交换信息协调提供服务。分布式强调的是工作方式。 微服务:... -
集群 分布式 微服务
2020-12-23 13:47:211.分布式:一个业务分拆多个子业务,部署在不同的服务器上2.集群:同一个业务,部署在多个服务器上分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。分布式中的每一个... -
浅析SOA、分布式和微服务
2021-05-10 20:56:35浅析SOA、分布式和微服务 一、SOA的特征及其实现 SOA的特征 SOA(面向服务的架构)是一种理念,其包含了以下一些特征: 面向服务的分布式计算 服务间松散耦合 支持服务的组装 服务注册和自动发现 以服务契约方式... -
【分布式&微服务】集群、分布式以及微服务之间的区别
2022-02-08 22:07:01分布式 将一个大的系统拆分为多个业务模块,将各个业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。 “拆”的方法:水平拆分、垂直拆分 1.水平拆分 根据“分层”的思想进行拆分。例如,可以... -
集群、分布式、微服务概念和区别
2021-04-06 08:09:43概念:集群是个物理形态,分布式是个工作方式。1.分布式:一个业务分拆多个子业务,部署在不同的服务器上2.集群:同一个业务,部署在多个服务器上分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器... -
单体 分布式 微服务
2022-04-29 09:32:28单体 分布式 微服务 单体 在软件技术发展早期,软件设计者一般讲所有功能模块打包到一起并放在一个应用中运行,所用的模块使用同一数据库 优点: 架构简单,前期开发效率高,成本低,易部署,易测试,适合个人或者... -
集群、分布式、微服务的区别
2020-12-28 10:15:14微服务相比分布式服务来说,它的粒度更小,服务之间耦合度更低,由于每个微服务都由独立的小团队负责,因此它敏捷性更高,分布式服务最后都会向微服务架构演化,这是一种趋势, 不过服务微服务化后带来的挑战也是... -
分布式和微服务架构概述
2021-04-09 00:47:02随着互联网的发展已经很难满足市场对技术的需求,于是我们从单独架构发展到分布式架构,又从分布式架构发展到 SOA 架构,服务不断的被拆分和分解,粒度也越来越小,直到微服务架构的诞生。 微服务架构是一种架构... -
集群,分布式,微服务概念理解和区别
2020-09-23 15:29:031.分布式与集群 集群是个物理形态,分布式是个工作方式。 1. 分布式架构:多个子系统相互协作才能完成业务流程,系统之间需要进行通信。 2. 集群:同一个工程部署到多台服务器上。 3. 分布式架构优缺点: ... -
分布式、微服务(概念)
2020-02-29 18:59:08(一)分布式 传统的单体架构模式简单方便,但是在如今高并发的应用场景中,单体架构已不适用,而且单体架构也有明显的缺点 存在单点故障导致整体不可用 全部任务都在同一服务器(节点)处理,响应慢、压力大 ... -
面试专题(分布式系统微服务)
2021-03-09 06:50:10架构设计相关0.什么是分布式系统,什么是微服务?集群:多机器做同一件事情;分布式系统:一件事情,多系统协同完成;微服务架构:构建分布式系统的一种架构方式,核心思路是:去中心化;...... -
架构解密从分布式到微服务(Leaderus著)
2018-07-27 08:35:48架构解密从分布式到微服务(Leaderus著)架构解密从分布式到微服务(Leaderus著)架构解密从分布式到微服务(Leaderus著)架构解密从分布式到微服务(Leaderus著)架构解密从分布式到微服务(Leaderus著)架构解密从... -
集群,分布式,微服务,负载均衡概念理解
2020-09-03 17:08:18集群是个物理形态,分布式和微服务是个工作方式。 先说集群和分布式: · 分布式:一个业务分拆多个子业务,部署在不同的服务器上 · 集群:同一个业务,部署在多个服务器上,主要是为了做负载均衡 1:分布式是指将... -
微服务和分布式的区别
2022-02-15 10:20:29简单的说,微服务是架构设计方式,分布式是系统部署方式,两者概念不同 微服务是啥? 这里不引用书本上的复杂概论了,简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务... -
一分钟弄懂什么是分布式和微服务
2018-10-18 21:33:31简单的说,微服务是架构设计方式,分布式是系统部署方式,两者概念不同 微服务是啥?这里不引用书本上的复杂概论了,简单来说微服务就是很小的服务,小到一个服务只对应一个单一的功能,只做一件事。这个服务可以... -
集群 分布式 微服务 概念理解(转)
2018-06-11 19:47:50集群是个物理形态,分布式是个工作方式。分布式:一个业务分拆多个子业务,部署在不同的服务器上集群:同一个业务,部署在多个服务器上1:分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在... -
微服务与分布式的理解
2021-07-06 10:26:05一、微服务是什么? 维基上对其定义为:一种软件开发技术- 面向服务的体系结构(SOA)架构样式的一种变体,将应用程序构造为一组松散耦合的服务。在微服务体系结构中,服务是细粒度的,协议是轻量级的。 微服务(或...