在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
微服务和分布式的联系与区别什么?分布式只是一种手段把不同的机器分散在不同的地方,然后这些机器间相互协助完成业务,而微服务是一种特殊的分布式。分布式将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互,微服务与分布式的细微差别是微服务的应用不一定是分散在多个服务器上也可以是同一个服务器。

一、什么是微服务?
微服务架构是团队面对互联网产品爆发式增长的最优选择,解决快速迭代、高可靠和高可用等问题,把复杂度很高的产品拆分成一些较小的模块,并遵循康威定律,每一个模块用5-9个小团队来维护,减少沟通成本提高协作效率更好地实现快速迭代和弹性扩展。
采用微服务架构改造引入各种复杂性,如部署工作量的增加、复杂链路的监控难题,为微服务而微服务只会得不偿失。在实施的过程中不能简单的使用某些个微服务框架或者组件一蹴而就,而是需要将业务、技术和运维有机结合起来配合同步实施,并在此过程中还需要趟过很多的坑才能够取得成功。
复杂业务拆分可能无法一步到位,因为复杂每个业务并不一定只能拆成一个组件,庞大的业务拆分出相对独立和庞大的业务,但如果业务较小而又比较多,且类型相似也可以不用着急拆分。
二、什么是分布式?
对于分布式架构根据设计期的架构思想和运行期的不同结构分为:面向服务架构、分布式服务架构、微服务架构。
1、面向服务架构︰以业务服务的角度和服务总线的方式(一般是WebService与ESB)考虑系统架构和企业IT治理;
2、分布式服务架构:基于去中心化的分布式服务框架与技术,考虑系统架构和服务治理;
3.微服务架构∶微服务架构可以看做是面向服务架构和分布式服务架构的拓展,使用更细粒度的服务和一组设计准则来考虑大规模的复杂系统架构设计。
统的企业集成领域的EAI架构模式,本身还是各个系统独立部署,但是各系统之间的部分业务使用特定的技术打通,因此可以看做是单体和分布式之间的过渡状态。
三、分布式服务架构与微服务架构概念的联系与区别是什么?
分布式:分散压力。
微服务:分散能力。分布式:不同模块部署在不同服务器上;
作用:分布式解决网站高并发带来问题;
集群:相同的服务;
多台服务器部署相同应用构成一个集群;
作用:通过负载均衡设备共同对外提供服务;
SOA[组装服务/ESB企业服务总线];
业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力;
通过服务的组合和编排来实现上层的业务流程;
作用:简化维护,降低整体风险,伸缩灵活;
微服务[找到服务/微服务网关open API];
架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行;
SOA到微服务架构的演进过程;
作用:各服务可独立应用,组合服务也可系统应用。
总结:分布式是个工作方式,微服务是一种架构风格。都是将同一个大系统中不同的子模块进行分开部署。已达到一个低耦合,提高并发量,提高系统可以水平伸缩的能力,同时它们和其他模块之间通讯也都是基于rpc进行通讯调用。微服务是一个单独的服务包含了一个服务从控制层到业务层到持久层该有的东西它都必须要有,前端代码也可以自己提供,并微服务的持久层数据库是私有的并不会对其他服务共享。而分布式可以仅仅只有控制层和业务层,可以不需要自己的数据库和前端,可以和其他模块共享一个数据库。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java垃圾回收器相关问题解答
相信很许多人在学习Java的时候,都没有搞清楚过Java垃圾回收器。因此本文主要讲述了Java垃圾回收器的定义、性能评估工具、回收算法等等内容,为大家全面解答垃圾回收器的相关问题。
5710
2019-08-20 15:55:44
电脑编程入门自学Java指南
随着Java近些年来的强劲发展,想要转行学习Java的初学者也越来越多了。然而,入门自学Java并不是一件轻松的事情。众所周知,万事开头难,尤其是没有编程语言基础的学习者,不仅仅需要付出更多的心血和汗水,还需要科学地制定学习规划,下面小编为大家准备了一份电脑编程入门自学Java指南,内容包括了Java的学习内容和路径,赶紧来一起看看吧!
5677
2019-12-30 15:15:34
程序员常用的JVM 配置参数汇总
JVM可以算是初级程序员进阶高级程序员必须要掌握的核心技能之一。另外,在许多面试过程中,JVM也是检验Java程序员能力水平的试金石。今天我们不谈Java底层实现的原理,而是为大家整理汇总了一些常见的,希望对大家编写代码有所帮助。
5627
2020-03-04 18:08:39
线程多有什么好处?使用多线程的优势
多线程的好处:提高CPU的利用率,更好地利用系统资源,使用Monitor类可以同步静态/实例化的方法的全部代码或者部分代码段,使用不同的同步类创建自己的同步机制。
10643
2020-04-10 15:28:38
Java基础练习之评委打分
在学习Java的过程中,最重要的就是多敲代码多练习,只有这样才巩固所学的基础理论知识。本文为大家提供了Java中一个十分经典的基础练习题——评委打分,并且附上了思路和答案,下面大家一起来做做吧~
6098
2020-05-28 15:41:04
