分布式和微服务有什么区别(分布式,微服务,集群,傻傻分不清楚)
本文目录
分布式,微服务,集群,傻傻分不清楚
分布式 ,所谓的分布式,其实是一种部署方式。 两个特点,将服务A和服务B放在两台不同的服务器上,共同来完成同一个业务逻辑,这个就叫分布式。 集群 ,所谓的集群,其实就是一整套完整的业务逻辑部署在不同的服务器上。 分布式VS集群 分布式的每个节点都可以来做集群。 比如说:服务A用了两台服务器,服务B用了一台服务器,那么这个服务A就是集群,同时,这也是分布式部署。 集群不一定是分布式。 比如说:我在两台服务器上各自安装上tomcat运行这同一个jar包,这就是集群。再比如说,MySQL的主从也是一种集群方式。分布式的亲戚,微服务 微服务是一种设计架构,分布式是一种部署方式。 分布式一定属于微服务,但是,微服务不一定属于分布式。 怎么说呢?微服务就是比分布式粒度更小的拆分,降低耦合的同时,运维部署也更难了。 区别,微服务其实和分布式没啥大区别,最主要的是,微服务可以应用可以部署在同一台服务器上。 打个比方,服务A和服务B都部署在一台服务器上,通过RPC远程调用,那么这个项目就是微服务,但是,他的部署方式,不是分布式的。
java微服务和分布式的区别有哪些
这个问题已经收藏了一个多月了,一直在考虑如何回答这个问题,总结了很长时间终于有了一些感悟(之前一直都是只可意会不可言传的感觉),和大家分享一下,如果有不同的建议,欢迎大家留言指正。
分布式和微服务
首先,我认为微服务就是分布式框架的一种。
分布式的思想就是把一个系统的不同模块,部署在不同的服务器上,以应对高并发的问题。
SOA是一种分布式架构,把业务系统分成多个子系统,提供不同的服务,再通过服务组合、编排实现业务流程;通常在SOA架构中,ESB企业服务总线扮演了重要的角色。
微服务是SOA的升华,如果非要说点儿不同的,那么微服务更加强调服务的细分和专业,去ESB总线、去中心化,部署粒度更细,服务扩展更灵活。
微服务不只是技术架构
很多同学一说微服务,就说这是一种技术架构,有的推荐使用Dubbo,有的推荐使用SpringCloud。
我认为,微服务不单单是一种技术架构,也涉及到了管理、组织架构。
大多数的公司,需求、开发、测试、运维都是独立的团队,这实际上是有悖于微服务快速迭代的思想;在微服务的架构下,一个服务应该是由一个团队全权负责的。
不过组织架构方面的事情,真的不是我们能说了算的。
必须要用微服务?
我觉得没有必要为了微服务,而微服务;有的公司把服务拆分,但是数据库依然是同一个库,依然是一个项目直接掉另外一个项目的接口,然后对外就宣称完成了微服务的改造...架构设计还是要根据需求背景、团队开发能力、软硬件实力综合来考虑。
好的架构是可以进化的,而不是一步到位建成的。
我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。
关于 分布式和微服务 的一些总结
拿着爸妈提供的物质,见识他们没有见识过的世面,体验他们没有体验过的人生,到头来,却嫌弃他们如此笨拙。
个人觉得 分布式系统 面向的是 Ops ,更多的是考虑 系统性能和部署环境 之间的问题,通过分布式解决在没有 大型主机的部署环境 情况下, 系统性能的高可用和吞吐量 ,是个一个很早就提出来的一个概念,是由 集中式系统 过渡来的,随着计算机系统向 网络化 和 微型化 的发展日趋明显,同时 业务的发展 ,传统的 集中式 处理模式越来越不能适应人们的需求,学习成本高,大型主机贵、容错性差,扩容困难。
为了解决业务快速发展给IT系统带来的巨大挑战,从2009年开始,阿里集团启动了去IOE计划,其电商系统开始正式迈入 分布式系统时代 。
在 《分布式系统概念与设计》 一书中,对 分布式系统 做了如下定义:
分布式系统 是一个 硬件或软件组件 分布在不同的 网络计算机 上,彼此之间 仅仅 通过 消息传递 进行 通信和协调 的系统。 (硬件或软件组件,个人理解 ,硬件组件分布我们可以结合 HarmonyOS 理解,音画同步,应用跨设备流转,软总线等硬件抽象的分布式,或者可以结合RAID(独立冗余磁盘阵列)理解,可以理解为以机器为粒度的磁盘阵列,软件组件分布这里结合我们常说的微服务分布式部署,类比java Web分布式系统。)
微服务 (Microservices) 是一种 软体架构风格 ,它是以专注于 单一责任 与功能的 小型功能区块 (Small Building Blocks) 为基础,利用 模组化 的方式组合出复杂的大型应用程式, 各功能区块使用与语言无关 (Language-Independent/Language agnostic) 的 API 集相互通讯 。 微服务的起源是由 Peter Rodgers 博士于 2005 年度云端运算博览会提出的 微 Web 服务 (Micro-Web-Service) 开始, Juval Löwy 则是与他有类似的前导想法,将类别变成细粒服务 (granular services),以作为 Microsoft 下一阶段的软体架构,其核心想法是让服务是由类似 Unix 管道 的存取方式使用,而且复杂的服务背后是使用简单 URI 来开放介面 ,任何服务,任何细粒都能被开放 (exposed)。这个设计在 HP 的实验室被实现,具有改变复杂软体系统的强大力量。 2014年, Martin Fowler 与 James Lewis 共同提出了 微服务 的概念,定义了 微服务 是由以 单一应用程式构成的小服务 ,自己拥有自己的 行程 与 轻量化处理 ,服务依业务功能设计,以 全自动的方式部署 ,与其他服务使用 HTTP API 通讯 。同时服务会使用 最小的规模 的 集中管理 (例如 Docker) 能力 ,服务可以用不同的 程序语言 与 资料库 等元件协作。
个人觉得 微服务 架构更多的是面向 dev ,更多的是考虑 编码和项目业务之间 的问题,根据 功能 把 应用拆分为服务 。解决的是 开发问题和应用复杂性 ,是在对于业务的快速发展中 单体应用 不能满足需要的时候,提出来的一个概念, 《微服务架构设计模式》 一书中对微服务架构做如下定义:
把应用程序 功能性分解 为 一组服务 的架构风格。(很直白的一句话,不需要多解释,对于大型系统而言,模块化是必不可少的,相信小伙伴也做过类似的项目, 微服务架可以看做是模块化的一种形式 )
微服务 和 分布式 都是对 大型应用程序的扩展 ,只是 扩展方向 不同而已:
个人认为, 不属于包含关系 ,都是对于 应用扩展 的不同解决办法。一般情况下, 微服务架构的应用一般为分布式系统。但分布式系统不一定是微服务架构 。
微服务和分布式的区别
1.微服务是把一个大服务拆分成多个小服务,有利于重复利用2.分布式,是把某个服务部署在多个服务器上3.微服务和分布式并不是相同的,分布式部署的是相同的服务,微服务是部署多个不同的小服务4.微服务可以用分布式的方式部署
5分钟 搞懂分布式架构与微服务
所谓分布式系统,是指一个完整的应用系统被拆分后,分别部署到不同的网络节点中,这样的系统往往是一些大型的系统。这种做法的好处是,可以提高系统的运算能力。与分布式系统相对应的就是 单体应用系统,单体应用系统的思想是all in one 思想, 就是全部在一起,一个系统的全部服务都集中在一个网络节点上。 所谓集群就是,相同的事情多个人做,比如在上图分布式系统中, **商品服务 **被部署到一台机器上,但是如果在购物节时,请求太多,一台机器根本扛不住,这时我们也增加10台机器,这10台机器都部署 **商品服务, **这样由这10台机器就组成了商品服务集群,集群的初衷就是提高系统的吞吐量,另一个就是提高可用性,比如一台服务器挂了,不至于服务不可用。 SOA 架构就是面向于服务的架构思想,本质上就是以服务为中心,把应用拆分为多个服务,抽离出可重用的服务,为每个服务的单独扩展和开发提高便利性。阿里的Dubbo 就是SOA服务架构的一种实现,事实上SOA并没有对服务间通信协议具体规定,可以RPC,可以HTTP。 微服务是一种SOA思想的延续,任然关注服务,但是强调是"微",微体现的是服务开发成分要低,职责要尽量单一,同时部署也要灵活方便。目前微服务是非常流行的一种软件架构,在Java生态中 SpringCloud就提供了微服务的全站解决方案。 分布式和集群都是从软件部署的角度描述,SOA与微服务是从软件的架构阐述。一个采用SpringCloud技术开发系统 必然是微服务,当然同时也是分布式系统,当然如果为了高可用,必定也采用集群。
集群、分布式、微服务概念和区别
***隐藏网址*** 概念: 集群是个物理形态,分布式是个工作方式。 1.分布式:一个业务分拆多个子业务,部署在不同的服务器上 2.集群:同一个业务,部署在多个服务器上 分布式是指将不同的业务分布在不同的地方。而集群指的是将几台服务器集中在一起,实现同一业务。 分布式中的每一个节点,都可以做集群。而集群并不一定就是分布式的。 举例:就比如新浪网,访问的人多了,他可以做一个集群,前面放一个响应服务器,后面几台服务器完成同一业务,如果有业务访问的时候,响应服务器看哪台服务器的负载不是很重,就将给哪一台去完成。 而分布式,从窄意上理解,也跟集群差不多,但是它的组织比较松散,不像集群,有一个组织性,一台服务器垮了,其它的服务器可以顶上来。 分布式的每一个节点,都完成不同的业务,一个节点垮了,那这个业务就不可访问了。 简单说,分布式是以缩短单个任务的执行时间来提升效率的,而集群则是通过提高单位时间内执行的任务数来提升效率。 例如:如果一个任务由 10 个子任务组成,每个子任务单独执行需 1 小时,则在一台服务器上执行该任务需 10 小时。 采用分布式方案,提供 10 台服务器,每台服务器只负责处理一个子任务,不考虑子任务间的依赖关系,执行完这个任务只需一个小时。(这种工作模式的一个典型代表就是 Hadoop 的 Map/Reduce 分布式计算模型) 而采用集群方案,同样提供 10 台服务器,每台服务器都能独立处理这个任务。假设有 10 个任务同时到达,10 个服务器将同时工作,1 小时后,10 个任务同时完成,这样,整体来看,还是 1 小时内完成一个任务! 好的设计应该是分布式和集群的结合,先分布式再集群,具体实现就是业务拆分成很多子业务,然后针对每个子业务进行集群部署,这样每个子业务如果出了问题,整个系统完全不会受影响。 另外,还有一个概念和分布式比较相似,那就是微服务。 微服务是一种架构风格,一个大型复杂软件应用由一个或多个微服务组成。 系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好地完成该任务。在所有情况下,每个任务代表着一个小的业务能力。
集群模式是不同服务器部署同一套服务对外访问,实现服务的负载均衡。区别集群的方式是根据部署多台服务器业务是否相同。 注:集群模式需要做好session共享,确保在不同服务器切换的过程中不会因为没有获取到session而中止退出服务。 一般配置Nginx的负载容器实现:静态资源缓存、Session共享可以附带实现,Nginx支持5000个并发量。
答案是肯定的。 微服务 的意思也就是将模块拆分成一个独立的服务单元通过接口来实现数据的交互。
微服务的设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。
分布式和微服务区别
1、分布式架构是分布式计算技术的应用和工具,目前成熟的技术包括J2EE, CORBA和.NET(DCOM),这些技术牵扯的内容非常广,相关的书籍也非常多,也没有涉及这些技术的细节,只是从各种分布式系统平台产生的背景和在软件开发中应用的情况来探讨它们的主要异同。 2、微服务架构是一项在云中部署应用和服务的新技术。大部分围绕微服务的争论都集中在容器或其他技术是否能很好的实施微服务,而红帽说API应该是重点。 3、微服务可以在“自己的程序”中运行,并通过“轻量级设备与HTTP型API进行沟通”。关键在于该服务可以在自己的程序中运行。通过这一点我们就可以将服务公开与微服务架构区分开来。在服务公开中,许多服务都可以被内部独立进程所限制。如果其中任何一个服务需要增加某种功能,那么就必须缩小进程范围。在微服务架构中,只需要在特定的某种服务中增加所需功能,而不影响整体进程的架构。 4、从概念理解,分布式服务架构强调的是服务化以及服务的分散化,微服务则更强调服务的专业化和精细分工;从实践的角度来看,微服务架构通常是分布式服务架构,反之则未必成立。所以,选择微服务通常意味着需要解决分布式架构的各种难题。 5、区别分布式的方式是根据不同机器不同业务。将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。 6、微服务更加强调单一职责、轻量级通信(HTTP)、独立性并且进程隔离。 7、微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上,他也可以是同一个服务器。 8、微服务架构是分布式服务架构的子集。微服务架构通过更细粒度的服务切分,使得整个系统的迭代速度并行程度更高,但是运维的复杂度和性能会随着服务的粒度更细而增加。
更多文章:
tended(tended to live shorter lives)
2024年8月13日 11:40
matlab把c盘弄炸了(我在虚拟机安装了matlab程序后发现C盘小了3G,于是我又把他它卸载了,但发现C盘容量并没有回复是怎么回事)
2024年7月20日 13:18
objectoutputstream是什么流(java中有哪些常用的输入/输出流,它们的主要区别是什么)
2024年7月17日 15:07
playground(Andy Rubin和他联手创立的Playground风投还有联系吗)
2024年7月3日 11:27
江苏移动网上营业厅积分兑换商城(江苏中国移动网上营业厅积分兑换商城)
2024年7月3日 09:58
if函数怎么用三个条件(excel中if函数怎么用里面有三个值,)
2024年6月10日 06:50
人类一败涂地登录界面图片(人类一败涂地手游有什么特色好玩不)
2024年7月29日 22:55
eclipse中的 jsp是什么(eclipse为什么写成jsp)
2024年7月17日 19:37
直方图和柱形图一样吗(测试数据分析技术中直方图技术与柱状图技术有什么区别(直方图X轴为定量数据,柱状图X轴为分类数据))
2024年7月17日 08:45
load tray1(p355d load tray1是什么意思)
2024年7月23日 14:06
excel做成软件录入界面(excel表格怎么样做成app软件)
2024年9月8日 23:30
hamburger是什么意思中文(hamburger翻译中文是什么意思)
2024年6月30日 22:28