在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
微服务和分布式的区别什么?有什么特点?微服务设计是为了不因为某个模块的升级和BUG影响现有的系统业务。微服务与分布式的细微差别是,微服务的应用不一定是分散在多个服务器上也可以是同一个服务器。分布式属于微服务,将模块拆分成一个独立的服务单元通过接口来实现数据的交互。分布式和微服的架构很相似,只是部署的方式不一样而已。
微服务是什么?
微服务架构是团队面对互联网产品爆发式增长的最优选择,要解决的是快速迭代、高可靠和高可用等问题,把复杂度很高的产品拆分成一些较小的模块,并遵循康威定律,每一个模块用5-9个小团队来维护,这样可以减少沟通成本,提高协作效率,更好地实现快速迭代和弹性扩展。
采用微服务架构改造,引入各种复杂性,如部署工作量的增加、复杂链路的监控难题,这就是为微服务而微服务,只会得不偿失。在实施的过程中不能简单的使用某些个微服务框架或者组件一蹴而就,而是需要将业务、技术和运维有机结合起来,配合同步实施,并且在此过程中还需要趟过很多的坑才能够取得成功。
复杂业务拆分可能无法一步到位,因为复杂,每个业务并不一定只能拆成一个组件,庞大的业务拆分出相对独立和庞大的业务,但如果业务较小而又比较多,且类型相似也可以不用着急拆分。
举网易考拉的例子,工程数量由最初的 7 到后来的 150+ 再到目前的 400+,都是根据实际情况决定的。中间的状态,可能不是严格意义上的微服务架构,但属于分布式服务架构——不过这不是那么重要,重要的是符合业务发展阶段的需求。医院的急诊,既看发热又看胃痛,固然分工没那么精细,但我们也不能说就是错的。
分布式是什么?
对于分布式架构,我们根据设计期的架构思想和运行期的不同结构分为:面向服务架构、分布式服务架构、微服务架构。
1、面向服务架构︰以业务服务的角度和服务总线的方式(一般是WebService与ESB)考虑系统架构和企业IT治理;
2、分布式服务架构:基于去中心化的分布式服务框架与技术,考虑系统架构和服务治理;
3、微服务架构∶微服务架构可以看做是面向服务架构和分布式服务架构的拓展,使用更细粒度的服务和一组设计准则来考虑大规模的复杂系统架构设计。
统的企业集成领域的EAI架构模式,本身还是各个系统独立部署,但是各系统之间的部分业务使用特定的技术打通了,因此我们可以看做是单体和分布式之间的过渡状态。
分布式服务架构与微服务架构概念的区别与联系:
分布式:分散压力。
微服务:分散能力。
分布式:不同模块部署在不同服务器上;
作用:分布式解决网站高并发带来问题;
集群:相同的服务;
多台服务器部署相同应用构成一个集群;
作用:通过负载均衡设备共同对外提供服务;
SOA[组装服务/ESB企业服务总线];
业务系统分解为多个组件,让每个组件都独立提供离散,自治,可复用的服务能力;
通过服务的组合和编排来实现上层的业务流程;
作用:简化维护,降低整体风险,伸缩灵活;
微服务[找到服务/微服务网关open API];
架构设计概念,各服务间隔离(分布式也是隔离),自治(分布式依赖整体组合)其它特性(单一职责,边界,异步通信,独立部署)是分布式概念的跟严格执行;
SOA到微服务架构的演进过程;
作用:各服务可独立应用,组合服务也可系统应用。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Java入门基础语法笔记之数组
对于刚刚入门Java的小白来讲,Java基础语法知识是学习的第一步,也是十分重要的一步。因此建议大家在学习初期就构建一套系统的学习大纲,并且边学边总结归纳,这样学下来就不至于好像什么都懂了,又好像什么都不懂。本文将为大家分享关于数组的Java入门基础语法笔记,希望大家把基础语法都像这样整理出来,方便日后的复习和梳理。下面让我们一起看看吧!
5099
2019-12-02 12:40:35
JUnit 测试原理介绍与应用
Junit 测试原理介绍与应用,JUnit是一个单元测试框架,使用注解的形式来指定需要测试的方法。JUnit测试其实就是执行一个类中的方法,且仅用于测试,称之为测试类,使用 @Test 注解标注。
8182
2020-04-28 16:01:41
使用Spring框架的优点有哪些?
Spring是java企业级应用的开源开发框架,主要用来开发Java应用,但有些扩展是针对构建J2EE平台的web应用。Spring框架目标是简化Java企业级应用开发,并通过POJO为基础的编程模型促进良好的编程习惯。Spring最核心的两个点就是IOC和AOP。
3909
2021-02-03 14:27:19
Java入门基础知识点需要学什么?
入门学习一定要找到适合自己的方法才能事半功倍,对需要掌握的知识点有一个大概的了解,Java入门基础知识包含:标识符、变量、AScii码和Unicod码、基本数据类型转化String类、进制、运算符、程序流程控制语句、方法等内容。
3595
2021-03-16 11:39:10
热门的Java开源项目工具有哪些?
对于程序员来讲,在工作中选择适合的项目开发框架可以大大的提高工作效率,今天这里就介绍一些热门的Java开源项目工具:JimuReport、dolphinscheduler、sa-token、Signal-Server、soul、Arthas、kafka、Seata、miaosha、Rocketmq、Nacos等。
3693
2021-05-10 14:06:55