微服务架构与传统单体架构的对比

2024-02-26 14:08

本文主要是介绍微服务架构与传统单体架构的对比,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

好记忆不如烂笔头,能记下点东西,就记下点,有时间拿出来看看,也会发觉不一样的感受。

一、概述

说起微服务,在程序界,可算是当下相对火爆的词,那么微服务到底是什么?与传统的服务有什么区别,为什么要使用微服务呐?

需要指出的是:微服务架构并不是为了拆分而拆分,真正的目的是通过对微服务进行水平扩 展解决传统的单体应用在业务急剧增长时遇到的问题,而且由于拆分的微服务系统中专业的人做 专业的事,人员和项目的职责单一、低藕合、高内聚,所以产生问题的概率就会降到最小。

二、微服务架构描述

先看看微服务的架构图,看看当前火的微服务架构图:



从图得出如下结论:
· 微服务把每一个职责单一的功能放在一个独立的服务中 。
· 每个服务运行在一个单独的进程中。
· 每个服务有多个实例在运行,每个实例可以运行在容器化平台内,达到平滑伸缩的效 果。
· 每个服务有自己的数据存储,实际上,每个服务应该有自己独享的数据库、缓存、消息 队列等资源。
· 每个服务应该有自己的运营平台,以及独享的运营人员,这包括技术运维和业务运营人 员:每个服务都高度自治,内部的变化对外透明。
· 每个服务都可根据性能需求独立地进行水平伸缩 。

三、传统架构描述

先看看传统架构图,粗略看看传统架构的实现方式:


从上图可以得到如下结论:

·传统单体架构将所有模块化组件混合后运行在同一个服务 口而4 进程中 。
· 可对包含多个模块化组件的整体 川岛f 进程进行水平扩展,而无法对某个模块化组件进 行水平扩展。
· 某个模块化组件发生变化时,需要所有的模块化组件进行编译、打包和上线 。

· 久而久之,模块间的依赖将会不清晰,互相糯合、互相依赖成为家常便饭。

通过对比来看,微服务架构更灵活并且可水平伸缩,可以让专业的人来做专业的事。


四、微服务架构与 SOA 服务化的对比

我们看到微服务架构的一些特点与 SOA 服务化架构相似, 事实上微服务架构与 SOA 服务 化架构并不冲突,它们一脉相承,微服务架构是服务化架构响应特定历史时期的使用场景的延 续,是服务化进行升华井落地的一种实现方式。 SOA 服务化的理念在微服务架构中仍然有效,微服务在 S OA 服务化的基础上进行了演进和叠加,形成了适合现代化应用场景的一个方法论。微服务架构与 S OA 服务化虽然一脉相承,却略有不同,如下所述。

1. 目的不同
• SOA 服务化涉及的范围更广一些,强调不同的异构服务之间的协作和契约 ,并强调有 效集成、业务流程编排、历史应用集成等,典型代表为 Web Service 和 ESB 。

·微服务使用 一系列的微小服务来实现整体的业务流程,目的是有效地拆分应用,实现敏 捷开发和部署,在每个微小服务的团队里,减少了跨团队的沟通,让专业的人做专业 的事,缩小变更和法代影响的范围,并达到单一微服务更容易水平扩展的目的。

2 . 部署万式不同

· 微服务将完整的应用拆分成多个细小的服务,通常使用敏捷扩容、缩容的 Docker 技术 来实现自动化的容器管理 , 每个微服务运行在单一 的进程内,微服务中的部署互相独 立、 互不影响。
• SOA 服务化通常将多个业务服务通过组件化模块方式打包在一个 War 包里,然后统一 部署在一个应用服务器上。

3. 服务植度不同

· 微服务倡导将服务拆分成更细的粒度,通过多个服务组合来实现业务流程的处理,拆分 到职责单一 , 甚至小到不能再进行拆分。

• SOA 对粒度没有要求 , 在实践中服务通常是粗粒度的,强调接口契约的规范化,内部 实现可以更粗粒度。


由此可见,微服务和传统服务的架构特点差别还是很大的,而微服务的特点也更加的突出,再我们选择系统架构的时候,还是要抛弃传统的架构模式,选择向微服务靠拢,从而实现更加灵活多变的系统。


欢迎拍砖!









这篇关于微服务架构与传统单体架构的对比的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/749117

相关文章

十五.各设计模式总结与对比

1.各设计模式总结与对比 1.1.课程目标 1、 简要分析GoF 23种设计模式和设计原则,做整体认知。 2、 剖析Spirng的编程思想,启发思维,为之后深入学习Spring做铺垫。 3、 了解各设计模式之间的关联,解决设计模式混淆的问题。 1.2.内容定位 1、 掌握设计模式的"道" ,而不只是"术" 2、 道可道非常道,滴水石穿非一日之功,做好长期修炼的准备。 3、 不要为了

通信系统网络架构_2.广域网网络架构

1.概述          通俗来讲,广域网是将分布于相比局域网络更广区域的计算机设备联接起来的网络。广域网由通信子网于资源子网组成。通信子网可以利用公用分组交换网、卫星通信网和无线分组交换网构建,将分布在不同地区的局域网或计算机系统互连起来,实现资源子网的共享。 2.网络组成          广域网属于多级网络,通常由骨干网、分布网、接入网组成。在网络规模较小时,可仅由骨干网和接入网组成

springboot家政服务管理平台 LW +PPT+源码+讲解

3系统的可行性研究及需求分析 3.1可行性研究 3.1.1技术可行性分析 经过大学四年的学习,已经掌握了JAVA、Mysql数据库等方面的编程技巧和方法,对于这些技术该有的软硬件配置也是齐全的,能够满足开发的需要。 本家政服务管理平台采用的是Mysql作为数据库,可以绝对地保证用户数据的安全;可以与Mysql数据库进行无缝连接。 所以,家政服务管理平台在技术上是可以实施的。 3.1

人工和AI大语言模型成本对比 ai语音模型

这里既有AI,又有生活大道理,无数渺小的思考填满了一生。 上一专题搭建了一套GMM-HMM系统,来识别连续0123456789的英文语音。 但若不是仅针对数字,而是所有普通词汇,可能达到十几万个词,解码过程将非常复杂,识别结果组合太多,识别结果不会理想。因此只有声学模型是完全不够的,需要引入语言模型来约束识别结果。让“今天天气很好”的概率高于“今天天汽很好”的概率,得到声学模型概率高,又符合表达

常用MQ消息中间件Kafka、ZeroMQ和RabbitMQ对比及RabbitMQ详解

1、概述   在现代的分布式系统和实时数据处理领域,消息中间件扮演着关键的角色,用于解决应用程序之间的通信和数据传递的挑战。在众多的消息中间件解决方案中,Kafka、ZeroMQ和RabbitMQ 是备受关注和广泛应用的代表性系统。它们各自具有独特的特点和优势,适用于不同的应用场景和需求。   Kafka 是一个高性能、可扩展的分布式消息队列系统,被设计用于处理大规模的数据流和实时数据传输。它

微服务中RPC的强类型检查与HTTP的弱类型对比

在微服务架构中,服务间的通信是一个至关重要的环节。其中,远程过程调用(RPC)和HTTP是两种最常见的通信方式。虽然它们都能实现服务间的数据交换,但在类型检查方面,RPC的强类型检查和HTTP的弱类型之间有着显著的差异。本文将深入探讨这两种通信方式在类型检查方面的优缺点,以及它们对微服务架构的影响。 一、RPC的强类型检查 RPC的强类型检查是其核心优势之一。在RPC通信中,客户端和服务端都使

响应式架构

介绍 响应式架构(Reactive Architecture)是一种面向服务和事件的系统设计方法,旨在提高系统的可扩展性、弹性和容错能力。它适用于构建分布式系统,特别是在云环境和微服务架构中。响应式架构的核心理念是通过事件驱动和数据流来实现各个组件之间的解耦,从而提高整个系统的响应能力和可靠性。 响应式架构的主要特点包括: 响应性:系统能够快速响应外部事件和内部变化,确保在各种负载和故障情

中国341城市生态系统服务价值数据集(2000-2020年)

生态系统服务反映了人类直接或者间接从自然生态系统中获得的各种惠益,对支撑和维持人类生存和福祉起着重要基础作用。目前针对全国城市尺度的生态系统服务价值的长期评估还相对较少。我们在Xie等(2017)的静态生态系统服务当量因子表基础上,选取净初级生产力,降水量,生物迁移阻力,土壤侵蚀度和道路密度五个变量,对生态系统供给服务、调节服务、支持服务和文化服务共4大类和11小类的当量因子进行了时空调整,计算了

SpringCloud - 微服务

1、微服务介绍         参考: 微服务百度百科 1.1 概念         微服务(或称微服务架构)是一种云原生架构方法,在单个应用中包含众多松散耦合且可单独部署的小型组件或服务。 这些服务通常拥有自己的技术栈,包括数据库和数据管理模型;通过一个REST API、事件流和消息代理组合彼此通信;以及按照业务能力进行组织,具有通常称为有界上下文的服务分隔线。         微服务特

大型网站架构演化(六)——使用反向代理和CDN加速网站响应

随着网站业务不断发展,用户规模越来越大,由于中国复杂的网络环境,不同地区的用户访问网站时,速度差别也极大。有研究表明,网站访问延迟和用户流失率正相关,网站访问越慢,用户越容易失去耐心而离开。为了提供更好的用户体验,留住用户,网站需要加速网站访问速度。      主要手段:使用CDN和反向代理。如图。     使用CDN和反向代理的目的都是尽早返回数据给用户,一方面加快用户访问速