常见软件架构方式的区别

创建软件架构方式他的一个区别,我们以那些架构方式作为一个比较的点呢,一个是MVC架构,还有一个是RPC架构,

还有一个SOA架构,还有一个是微服务架构,我们先来看第一种架构方式,MVC架构,我们首先看一个图

四种架构的表现形式,在这个图当中呢,分别画出了四种架构方式,第一种就是MVC架构,

第二种RPC架构,第三种SOA,第四种微服务,我们先来看MVC架构,其实MVC架构就是我们之前讲的单体架构,

他最大的特点是把所有的功能,都整合到了一个应用当中,并且操作数据库只是单一的数据库,以但数据库为准,

所谓的典型的MVC架构,其实MVC架构就是一个单体架构,那么对于单体架构的项目,他代表性的技术有哪些呢,如果

我的项目是基于单体架构去做的开发,我可以用哪些技术去完成单体架构的项目呢,咱们来看一下,代表技术,比如说

我们Struts2,还有SpringMVC,还有Spring,还有Mybatis,其实这些都可以做为单体架构的一个开发,由于我们之前讲过了

单体架构,我们再来看第二种,RPC架构,我们先来看这个图,除了MVC架构以外,后面的这三种架构方式,其实他们都有一个

共同的特征,在他们的架构方式当中,会有服务的这种概念,RPC中有服务,SOA当中有服务,微服务当中有服务,其实这三种

架构方式,我们可以统称为面向服务架构,但是由于在不同的架构当中,因为服务的治理上会有区别的,所以我们面向服务的

方式当中,分为了三种架构方式,一个是RPC,一个是SOA,一个是微服务,我们再来看第一个RPC,那么什么是RPC架构呢,这里我们

把RPC解释一下,大家并不陌生,RPC是单词的简写,那三个单词呢,Remote Procedure Call,直译过来是什么呢,远程过程调用,

那么这个远程过程调用是什么呢,他其实是通过网络,去获得请求服务的一种技术,他是一种通过网络从远程计算机程序上请求

服务,而不需要了解底层网路技术的一种协议,这是RPC的一种解释,那我们再看这个图,其实RPC和SOA和微服务,最大的一个区别

就是,我们的应用是直接来调用服务的,而服务和服务之间是没有通信通道的,这是他的一个特点,也就是服务和服务之间是

隔离的,服务和服务之间是无法建立通信的,因为他们最终都要通过应用来触发,这是他的一个特点,如果我们的应用真的是通过

RPC架构来架构的话,那么我们常用的技术可以选择什么呢,我们来看一下,一个是Thrift,这个Thrift是什么呢,是一个RPC通信,

然后Thrift有一个比较强大的代码生成引擎,而且这个技术是支持跨平台和语言的调用的,支持C++,Java,Python,Ruby这些主流

语言,Thrift他都是支持的,所以说这个技术还是比较强大的,Facebook把它挂在Apache下,如果我们想要了解一下,查一下

相关的资料,这是Thrift技术,除此之外还有一个Hessian,这个Hessian是什么呢,可能有的同学也了解,Hessian是一个轻量级的

RPC工具,是一款基于HTTP协议的RPC框架,他的使用是非常简单的,他提供了一个RMI的一个功能,采用的是二进制的RPC协议,

而且它是非常轻量级的,速度是非常快的,所以他是PRC架构技术的一个选择,常见的RPC框架是挺多的,这是RPC的一个架构,

然后再来看,除了RPC以外呢,还有微服务,那么SOA服务又是什么演变过来的呢,其实这个图就是我们项目进化的一个方式,

演化方式,MVC最终可以演化成RPC,PRC有可以演化成SOA和微服务,那么其实RPC这种方式呢,他有一些问题,有什么问题呢,

RPC的服务非常多,我们这个服务的节点特别多,这个时候你会发现,用RPC方式去架构的时候,服务是非常难管理的,而且服务的

注册与发现,服务的治理已经服务的网关,还有像服务的容错,还有分布式的配置中心,还有服务的跟踪等等,所以都是已将非常

麻烦的事,当服务的质量上升到几百个的时候,那么每个服务容量的评估,还有服务的资源浪费,还有IP的暴露等等,都非常

难管理,所以说这个时候,如果你的服务量过多,其实RPC的架构方式就显得力不从心了,那如果我们的服务真的有这么多的话,

怎么去解决呢,我们可以换其他的架构方式,比如像SOA架构,或者微服务架构都可以,那我们来看SOA架构,那么SOA是什么呢,

SOA也是单个单词的简写,Service Oriented Architecture,直译过来就是面向服务的架构,我们来看一下,SOA架构和RPC架构

最大的区别就是,在他的架构方式当中,多了一个层,原来RPC是直接调用服务,现在我们的应用是去调用ESB,ESB才去调用

服务,是这样的一个过程,那么ESB是什么呢,是需要先了解一下,其实ESB也是三个单词的简写,哪三个单词呢,Enterprise

Service Bus,直译过来就是企业服务总线,那么其实企业服务总线是什么呢,其实就是一个服务的中介,它主要是提供

服务与服务之间的交互,我们再来看这个图,在RPC这种架构模式下,服务和服务之间是没有消息交互通道的,但是SOA架构

则不然,我们所有的服务都集成到ESB下,集成到消息服务总线下,那么就相当于给每个服务建立了一个消息通道,然后

ESB的服务总线,进行治理,这是SOA比RPC更智能的一个体现,那么ESB包含了哪些功能呢,简单的了解一下,ESB包含的功能

如负载均衡啦,还有流量控制,还有加密处理,还有服务的监控,异常处理,还有监控告急,等等这样的一些功能,所以他的主要

技术特点就是来治理服务,对于服务的处理方式上是比较多的,在这里给大家罗列了几个,什么负载均衡,服务的监控等等,

这些都是企业的服务总线可以做到的,所以相比RPC这种架构方式,对于服务的治理这一块,更加容易一些,这是SOA架构,

那么我们看一下他的代表技术有哪些,比如有一个叫Mule的,那么它是一个什么用的技术呢,它是一个以JAVA为核心的

框架,他提供服务中介,数据转换,消息路由啊,服务创建和托管,当然这个技术有一个缺点,他并不是开源的,那么也就

意味着他是一个付费产品,如果我们的项目采用Mule作为我们的ESB的话,我们需要花钱购买的,我们再来介绍一个技术,

WS02,他也是一个企业服务组件,他具备以下的特点,快速,轻巧,关键一点它是完全开源的,也就是他是一个完全免费的

服务组件,然后是各种设施的基础搭建,技术框架和相关工具,还有内置了服务支持,服务器决策管理功能等等,所以WSO2

也是非常强大的,关键一点相比Mule它是免费产品,提供ESB平台的技术,最后一个就是微服务架构,还是看这个图,其实我们

会发现微服务的方式,跟SOA的方式是及其相似的,他中间也有一层,但是在微服务架构方式当中,这一层就不叫服务组件了,

他叫注册中心,其实注册中心就是治理服务的一种方式,那么这个注册中心呢,相比于企业总线,它会更轻量一些,

换句话说你也可以理解为,轻量的一个替代方案,我们还是把笔记先说一下,什么是微服务呢,其实从宏观上来讲,

微服务就是一个轻量级的服务治理方案,如果我们的项目是采用微服务的方式的话,我们可以用哪些技术来做微服务呢,

比如他的代表技术有哪些呢,比如SpringCloud,还有Dubbo,他的注册中心会用什么来实现呢,我们不是=说注册中心是用来

替换服务总线的吗,那么注册中心我们可以用什么呢,像Apache的Zookeeper,还有SpringCloud自带的eureka注册中心,

这些都是可以用来做主从中心的,所以通过对着四种架构个一个讲解,有什么区别相信大家应该已经理解了,应该并不是

一个很复杂一个事,我们主要讲这四种方式的最大区别,以及每个架构之间的一个特点

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值