`
maosheng
  • 浏览: 568784 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MVC架构、RPC架构、SOA架构、微服务架构区别

 
阅读更多



一、MVC架构

      其实MVC架构就是一个单体架构。

      当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。

      当业务规模很小时,将所有功能都部署在同一个进程中,通过双机或者前置负载均衡器实现负载分流。

      此时,加速前端页面开发,分离前后台逻辑的mvc框架是关键。

      代表技术:Struts2、springMVC、Spring、Mybatis 等等。

二、RPC架构

      RPC(Remote Procedure Call)远程过程调用,他是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。

      当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。

      此时,用于提高业务复用及拆分的 RPC 框架是关键。

      代表技术:Thrift、Hessian等等。

三、SOA架构

      SOA(Service Oriented Architecture)面向服务架构。

      ESB(Enterparise Service Bus)企业服务总线,服务中介。主要是提供了一个服务于服务之间的交互。简单来说 ESB 就是一根管道,用来连接各个服务节点。为了集成不同系统,不同协议的服务,ESB 做了消息的转化解释和路由工作,让不同的服务互联互通。

      ESB包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急。

      当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。

      服务生命周期管控和运行态的治理成为瓶颈。

      此时,用于提高机器利用率的,提升服务质量的 (资源调度和治理中心)SOA 服务治理是关键。

      SOA架构特点:

      1.系统集成:站在系统的角度,解决企业系统间的通信问 题,把原先散乱、无规划的系统间的网状结构,梳理成 规整、可治理的系统间星形结构,这一步往往需要引入 一些产品,比如 ESB、以及技术规范、服务管理规范; 这一步解决的核心问题是【有序】

      2.系统的服务化:站在功能的角度,把业务逻辑抽象成 可复用、可组装的服务,通过服务的编排实现业务的 快速再生,目的:把原先固有的业务功能转变为通用 的业务服务,实现业务逻辑的快速复用;这一步解决 的核心问题是【复用】

      3.业务的服务化:站在企业的角度,把企业职能抽象成 可复用、可组装的服务;把原先职能化的企业架构转变为服务化的企业架构,进一步提升企业的对外服务能力;“前面两步都是从技术层面来解决系统调用、系统功能复用的问题”。第三步,则是以业务驱动把一个业务单元封装成一项服务。这一步解决的核心问题是【高效】


      代表技术:Mule、WSO2

四、微服务

      微服务是在 SOA 上做的升华,微服务架构强调的一个重点是“业务需要彻底的组件化和服务化”,原有的单个业务系统会拆分为多个可以独立开发、设计、运行的小应用。这些小应用之间通过服务完成交互和集成。

      微服务其实就是一个轻量级的服务治理方案。

      微服务架构是一种架构模式,他提倡将单一应用程序划分成一组小的服务,服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相沟通(通常是基于HTTP协议的Restful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

      随着敏捷开发、持续交付、DevOps 理论的发展和实践,以及基于 Docker 等轻量级容器部署应用和服务的成熟,微服务架构开始流行,逐渐成为应用架构的未来演进方向。通过服务的原子化拆分,以及微服务的独立打包、部署和升级,小团队敏捷交付,应用的交付周期将缩短,运营成本也将大幅下降。

      微服务架构特点:

      1.通过服务实现组件化

         开发者不再需要协调其它服务部署对本服务的影响。

      2.按业务能力来划分服务和开发团队

         开发者可以自由选择开发技术,提供 API 服务

      3.去中心化

         每个微服务有自己私有的数据库持久化业务数据

         每个微服务只能访问自己的数据库,而不能访问其它服务的数据库

         某些业务场景下,需要在一个事务中更新多个数据库。这种情况也不能直接访问其它微服务的数据库,而是通过对于微服务进行操作。

         数据的去中心化,进一步降低了微服务之间的耦合度,不同服务可以采用不同的数据库技术(SQL、NoSQL等)。在复杂的业务场景下,如果包含多个微服务,通常在客户端或者中间层(网关)处理。

      4.基础设施自动化(devops、自动化部署)

         把应用拆分成为一个一个的单个服务,应用Docker技术,不依赖任何服务器和数据模型,是一个全栈应用,可以通过自动化方式独立部署,每个服务运行在自己的进程中,通过轻量的通讯机制联系,经常是基于HTTP资源API,这些服务基于业务能力构建,能实现集中化管理(因为服务太多啦,不集中管理就无法DevOps啦)。

      代表技术:SpringCloud、dubbo等等







  • 大小: 235.8 KB
分享到:
评论

相关推荐

    QCon上海2016-大型企业云平台架构和技术实践-苗彩霞1

    这一演进历程包括了MVC架构、SOA服务架构、RPC/事件驱动可伸缩架构,直至微服务架构。微服务架构是当前的热点,它强调功能细粒度的解耦,服务自治,以及与云计算和容器化的紧密结合,有助于实现快速交付和敏捷运维。...

    大型企业云平台架构和关键技术实践-华为公司-华为软件云平台架构师-苗彩霞.pdf

    1. **MVC架构**:将表现层、逻辑层和数据层分离,优化前端与后端的交互。 2. **SOA(Service-Oriented Architecture)服务化架构**:通过服务总线(ESB)实现企业级资产的重用和异构系统之间的集成。 3. **RPC/事件...

    明星讲师-黄浩-ASSZ2018-下一代分布式体系架构的理念与演进-黄浩

    2. **服务端技术的变迁**:从2005年开始,随着J2EE企业级组件技术的流行,MVC架构逐渐成为主流。随后,RPC框架对基于WS的SOA体系造成了冲击。 3. **云计算与大数据技术的兴起**:近年来,随着Docker技术的出现以及...

    后端架构工程师技术图谱

    微服务架构则是将一个大型应用程序构建为一组小型的、松耦合的服务,每个服务实现特定的业务功能,并通过轻量级的通信机制进行交互。SOA即面向服务的架构,它是一种设计原则,将应用程序的不同功能单元定义为服务,...

    springcloud讲义.docx

    【微服务架构】是现代软件开发中的一个重要概念,它的出现源于传统单一应用架构和技术架构的局限性。随着互联网业务的快速发展,网站应用的规模日益扩大,传统的架构模式无法有效应对这种变化,因此出现了微服务架构...

    service mesh杂谈.pptx

    在MVC架构中,Controller负责组装业务逻辑,View用于隔离前端模板,Model封装数据对象并隔离数据层细节。然而,随着业务复杂性的增加,这种模式暴露出一些问题,如Controller之间的复用性差、难以维护的代码结构等。...

    服务框架实践与探索

    《服务框架实践与探索》这篇文章详细介绍了在大型电商企业——阿里巴巴B2B技术部如何应对从单体应用到服务化架构(SOA)再到微服务架构的演进过程,其中涉及的关键技术解决方案和技术细节都得到了阐述。文章重点分享...

    Dubbo基础整合+Springboot

    - **ORM和MVC架构**:Dubbo整合到Springboot中,需要了解分布式系统的发展,从单一应用架构发展到MVC架构。 - **RPC远程过程调用**:RPC是分布式系统中的关键技术,它使得程序调用另一个地址空间的过程或函数成为...

    dubbo学习资料

    SOA(面向服务的架构)在这种场景下显得尤为重要。 #### 二、Dubbo架构概述 Dubbo是一种广泛使用的高性能、轻量级的开源微服务框架,主要用于构建分布式服务架构。Dubbo的核心组件包括服务提供者(Provider)、...

    dubbo的简单实现

    Dubbo采用了典型的RPC架构,主要包括以下几个组成部分: - **Provider**:即服务提供者,负责提供服务。 - **Consumer**:即服务消费者,消费服务提供者发布的服务。 - **Registry**:即注册中心,用于服务的注册与...

    java面试要点

    微服务架构是近年来非常热门的技术趋势。TCP粘包/拆包及其解决办法,RPC框架的理解,RESTful API的设计与幂等性保证,CAP定理、BASE理论,以及最终一致性的实现方案都是面试中常见的问题。微服务与SOA的区别,服务的...

    dubbo用户手册pdf中文版

    - **服务化思想**:Dubbo基于服务化的理念,提供服务的注册、发现、调用、监控等功能,使得微服务架构得以实现。 - **RPC(Remote Procedure Call)**:Dubbo是基于RPC的服务框架,它允许服务提供者在自己的应用中...

    .Net平台开发实践总结.Net平台开发实践总结.Net平台开发实践总结.Net平台开发实践总结

    随着微服务架构的流行,.NET Core提供了gRPC,一个高性能、开源和通用的RPC框架,基于HTTP/2和Protocol Buffers。 文件名`2008519223219.chm`看起来像是一个帮助文档,可能包含了.NET Framework的API参考或开发指南...

    IT 单词1

    13. **Dubbo**:Dubbo是阿里巴巴开源的分布式服务框架,它致力于提供高性能和透明化的RPC远程调用方案,以及SOA服务治理方案。 14. **Boot**:在上下文中,这可能指的是Spring Boot,一个快速构建微服务的框架,...

Global site tag (gtag.js) - Google Analytics