在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
微服务和分布式的区别什么?有什么特点?微服务设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上也可以是同一个服务器。分布式属于微服务,将模块拆分成一个独立的服务单元通过接口来实现数据的交互。分布式和微服的架构很相似,只是部署的方式不一样而已。
微服务是什么?
微服务架构是团队面对互联网产品爆发式增长的最优选择,要解决的是快速迭代、高可靠和高可用等问题,把复杂度很高的产品拆分成一些较小的模块,并遵循康威定律,每一个模块用5-9个小团队来维护,这样可以减少沟通成本,提高协作效率,更好地实现快速迭代和弹性扩展。
采用微服务架构改造,引入各种复杂性,如部署工作量的增加、复杂链路的监控难题,这就是为微服务而微服务,只会得不偿失。在实施的过程中不能简单的使用某些个微服务框架或者组件一蹴而就,而是需要将业务、技术和运维有机结合起来,配合同步实施,并且在此过程中还需要趟过很多的坑才能够取得成功。
复杂业务拆分可能无法一步到位,因为复杂,每个业务并不一定只能拆成一个组件,庞大的业务拆分出相对独立和庞大的业务,但如果业务较小而又比较多,且类型相似也可以不用着急拆分。
举网易考拉的例子,工程数量由最初的 7 到后来的 150+ 再到目前的 400+,都是根据实际情况决定的。中间的状态,可能不是严格意义上的微服务架构,但属于分布式服务架构——不过这不是那么重要,重要的是符合业务发展阶段的需求。医院的急诊,既看发热又看胃痛,固然分工没那么精细,但我们也不能说就是错的。
分布式是什么?
对于分布式架构,我们根据设计期的架构思想和运行期的不同结构分为:面向服务架构、分布式服务架构、微服务架构。
1、面向服务架构︰以业务服务的角度和服务总线的方式(一般是WebService与ESB)考虑系统架构和企业IT治理;
2、分布式服务架构:基于去中心化的分布式服务框架与技术,考虑系统架构和服务治理;
3、微服务架构∶微服务架构可以看做是面向服务架构和分布式服务架构的拓展,使用更细粒度的服务和一组设计准则来考虑大规模的复杂系统架构设计。
统的企业集成领域的EAI架构模式,本身还是各个系统独立部署,但是各系统之间的部分业务使用特定的技术打通了,因此我们可以看做是单体和分布式之间的过渡状态。
分布式服务架构与微服务架构概念的区别与联系:
分布式:分散压力。
微服务:分散能力。
分布式:不同模块部署在不同服务器上;
作用:分布式解决网站高并发带来问题;
集群:相同的服务;
多台服务器部署相同应用构成一个集群;
作用:通过负载均衡设备共同对外提供服务;
SOA[组装服务/ESB企业服务总线];
业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力;
通过服务的组合和编排来实现上层的业务流程;
作用:简化维护,降低整体风险,伸缩灵活;
微服务[找到服务/微服务网关open API];
架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行;
SOA到微服务架构的演进过程;
作用:各服务可独立应用,组合服务也可系统应用。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java基础面试题 Object类中Hashcode 和 equals区别与联系是什么?
equals Object 类中默认的实现方式是 : return this == obj 。那就是说,只有 this 和 obj 引用同一个对象,才会返回 true。Hashcode这个方法返回对象的散列码,返回值是 int 类型的散列码。
8847
2019-06-03 16:36:48
Java安全框架Shiro基础知识学什么?
Java安全框架Shiro基础需要掌握Shiro最新版本基础,还要掌握Shiro框架的三大核心组件Subject、SecurityManager、Realms及其工作流程;学习Shiro主要功能:认证、授权、加密;Shiro Web集成、Shiro与SpringBoot整合使用;深度剖析Shiro框架的核心原理,让学习者掌握执行逻辑。
5545
2020-03-12 10:07:15
SpringMVC注解解析
今天我们要来梳理的是请求映射注解@RequestMapping。相信大家对SpringMVC注解并不陌生,下面就来让我们一起来解析SpringMVC注解的内容吧,包括SpringMVC注解的概念和属性、mvc命名空间引入和组件扫描。
4341
2020-04-30 10:03:02
Java基础语法学习之常量与变量
今天Java基础语法学习的内容是常量与变量,顾名思义,常量就是不会发生改变的,而变量则恰好相反。本文主要总结了常量的概念、分类、案例演示,还有变量的概念、格式以及使用。下面就一起梳理下相关得基础知识点吧~
4905
2020-05-14 15:31:15
Redis数据库执行命令速度快的原因是什么?
Redis数据库执行命令速度快的原因是什么?作为服务端工程师工作中Redis用到的比较多。很多人知道Redis 快仅仅因为它是基于内存实现的,对于其它原因倒是模棱两可。
4878
2021-05-11 11:07:52