一、传统三层架构模式的缺陷

三层架构(3-tier architecture) 通常意义上的三层架构就是将整个业务应用划分为:界面层(User Interface layer)web、业务逻辑层(Business Logic Layer)service、数据访问层(Data access layer)dao。

区别于MVC

1)MVC中的模型(Model)指的是数据模型,用于封装与应用程序的业务逻辑相关的数据,除此之外还可以封装数据的处理方法(相当于业务逻辑)。这是完全区别于三层架构的模型层(Model)的。

MVC中模型(Model)的特点:

①有对数据直接访问的权利,如:对数据库的访问;

②模型(Model)“不依赖”视图(View)和控制器(Controller),即模型(Model)不关心它会被如何显示或者如何被操作;

③模型(Model)中数据的变化一般会通过一种刷新机制被“公布”;

④为了实现③中的“机制”用于监视此模型的视图必须事先在此模型上注册。从而,视图可以了解在数据模型上发生的改变。

2)视图(View),这里的视图基本跟三层中的视图一样,都是为了显示数据,没有程序上的逻辑。为了实现视图上数据的刷新,视图(View)需要访问它监视的模型(Model),所以应该事先在被它监视的数据那里进行注册。

3)控制器(Controller),这个概念是在三层中不存在的概念。它主要起到不同层面的组织作用,用于控制应用程序的流程。主要处理事件并作出相应。“事件”主要包括:用户的行为和数据的改变。

那么具体的传统的三层架构模式缺点有什么呢?

1、所有的代码都在同一个项目中维护,部署在同一个系统中

2、所有的代码都在一个代码库,代码量大,访问人数多,导致访问效率低下

3、分模块开发,各模块耦合度大,改一发动全身

4、多层间有交叉,导致同步改变,失去分层独立性

5、代码可读性差(模块耦合),运维团队看不懂代码

6、拆分多个子系统时,做公共代码的服务化(解决重复性问题)量大

二、什么是微服务架构?

从上图可以看出,微服务架构是:按功能拆分模块,每个模块有 服务消费者和服务提供者两个项目。

并且每个模块又是三层架构,服务提供者是service和dao层,服务消费者是web层。每个模块可以独立

技术选型,独立开发,独立部署,独立运维。

三、为什么需要微服务架构?

解决传统三层架构的不足

四、微服务架构的优缺点

优点:


1、每个模块(项目),可以独立技术选择(语言、数据库、架构),充分发挥各种语言技术的特长,博采众长

2、每个模块都独立开发,代码量小,业务简单,可控性强

3、服务模块之间不用直接依赖,可以使用一些服务治理框架来完成一个类似esb功能.

ESB全称为Enterprise Service Bus,即企业服务总线。它是传统中间件技术与XML、Web服务等技术结合的产物。ESB提供了网络中最基本的连接中枢,是构筑企业神经系统的必要元素。ESB的出现改变了传统的软件架构,可以提供比传统中间件产品更为廉价的解决方案,同时它还可以消除不同应用之间的技术差异,让不同的应用服务器协调运作,实现了不同服务之间的通信与整合。从功能上看,ESB提供了事件驱动和文档导向的处理模式,以及分布式的运行管理机制,它支持基于内容的路由和过滤,具备了复杂数据的传输能力,并可以提供一系列的标准接口。

4、随着系统架构的演变,微服务架构是当今时代的产物。

缺点:

因为每个功能都是独立服务,在一个大型项目中监控管理这些服务变得复杂,定位排除问题难度增大

五、架构使用场景

微服务架构使用大型项目

传统三层架构使用中小型项目

六、什么是微服务治理框架?


微服务治理框架就是在微服务架构中用来治理服务的框架

七、常见的服务治理框架

1):dubbo

  国产,来自于阿里巴巴,开源,国内用的比较多。缺点是以前更新不及时,在2014年更新了2.4版本后一直到

2017年9月7日才发布了2.5.4版本,三年没更新。先出来的东西思想不是很先进。

2):spring cloud

  国外,开源,国外用的多,国内在逐渐流行。更新相当及时,后出来的思想较为先进。学习难度较大。

Spring Cloud对于中小型互联网公司来说是一种福音,因为这类公司往往没有实力或者没有足够的资金投入去开发自己的

分布式系统基础设施,使用Spring Cloud一站式解决方案能在从容应对业务发展的同时大大减少开发成本。

八、什么是dubbo?

  dubbo是服务治理框架,可以与spring 无缝集成。是阿里巴巴SOA服务化治理方案的核心方案,每天为2000+个服务提供

超过30亿次的访问量支持。有良好的实用价值。

  dubbo采用一种非常简单的模型,要么提供方提供服务,要么消费方消费服务。所以基于这一点可以抽象出服务方(provider)

和消费方(consumer)两个角色。

九、dubbo能做什么?

  1、解决URL强依赖,只依赖服务注册中心。

  2、自动画出依赖图,理清调用关系

  3、支持集群

十、dubboX是什么?

  因为dubbo更新比较慢,在2014年更新2.4版本后2017年9月7日才发布2.5.4版本。期间,当当网根据自身需求,

对dubbo进行了扩展,就是现在的dubboX

十一、dubboX的主要功能有哪些?

  1、支持rest风格(http+json/xml)

  2、支持基于kryo和fst的java高效序列化的实现

  3、支持基于嵌入式tomcat的http remoting体系

  4、升级了spring,将dubbo的2.x版本升级到了3.x版本

  5、升级了服务注册中心zookeeper客户端,将dubbo中的zookeeper升级到了当时最新版本,以修正老版本中

包含的BUG

  6、dubboX和dubbo2.x是兼容的,没有改变dubbo的任何功能和配置方式(除了升级spring之类版本)

dubbo和dubboX与微服务架构(dubbo一)的更多相关文章

  1. Dubbo和Spring Cloud微服务架构比较

    Dubbo 出生于阿里系,是阿里巴巴服务化治理的核心框架,并被广泛应用于中国各互联网公司:只需要通过 Spring 配置的方式即可完成服务化,对于应用无入侵,设计的目的还是服务于自身的业务为主. 微服 ...

  2. Dubbo 和 Spring Cloud微服务架构 比较及相关差异

    你真的了解微服务架构吗?听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构. 微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务, ...

  3. Dubbo和Spring Cloud微服务架构'

    微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然微服务架构没有公认的技术标准和规范或者草案,但业 ...

  4. 你真的了解微服务架构吗?听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

    微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然微服务架构没有公认的技术标准和规范或者草案,但业 ...

  5. 听听八年阿里架构师怎样讲述Dubbo和Spring Cloud微服务架构

    转自:https://baijiahao.baidu.com/s?id=1600174787011483381&wfr=spider&for=pc 微服务架构是互联网很热门的话题,是互 ...

  6. 终极对决!Dubbo 和 Spring Cloud 微服务架构到底孰优孰劣

    标签: 微服务dubbospring架构 前言 微服务架构是互联网很热门的话题,是互联网技术发展的必然结果.它提倡将单一应用程序划分成一组小的服务,服务之间互相协调.互相配合,为用户提供最终价值.虽然 ...

  7. 手撕面试官系列(三):微服务架构Dubbo+Spring Boot+Spring Cloud

    文章首发于今日头条:https://www.toutiao.com/i6712696637623370248/ 直接进入主题 Dubbo (答案领取方式见侧边栏) Dubbo 中 中 zookeepe ...

  8. Dubbo和Spring Cloud微服务架构对比

    https://blog.csdn.net/zhangweiwei2020/article/details/78646252

  9. 微服务架构的基础框架选择:Spring Cloud还是Dubbo?

    最近一段时间不论互联网还是传统行业,凡是涉及信息技术范畴的圈子几乎都在讨论微服务架构.近期也看到各大技术社区开始组织一些沙龙和论坛来分享Spring Cloud的相关实施经验,这对于最近正在整理Spr ...

随机推荐

  1. SSH鞋贸商城的设计与实现

    目录 应用技术 需求分析 总体设计 项目UI展示 一.应用技术 ①SSH SSH是 struts+spring+hibernate的一个集成框架,是目前比较流行的一种Web应用程序开源框架.区别于 S ...

  2. .NET 术语

    .NET 术语 1. AOT 预编译器.与 JIT 类似,此编译器还可将 IL 转换为机器代码. 与 JIT 编译相比,AOT 编译在应用程序执行前进行并且通常在不同计算机上执行. 由于在运行时 AO ...

  3. Saltstack_使用指南03_配置管理

    1. 主机规划 注意事项 修改了master或者minion的配置文件,那么必须重启对应的服务. 2. 了解YAML 具体地址 https://docs.saltstack.com/en/latest ...

  4. cumprod、prod函数

    1.prod函数 prod函数用于求矩阵元素的积,其调用格式如下. (1)B=prod(A):若A为向量,则返回所有元素的积:若A为矩阵,则返回各列所有元素的积. (2)B=prod(A,dim):返 ...

  5. python小白——进阶之路——day3天-———运算符

    (1)算数运算符:  + - * / // % ** (2)比较运算符:  > < >= <= == != (3)赋值运算符:  = += -= *= /= //= %= ** ...

  6. L2-4 部落 (25 分)

    在一个社区里,每个人都有自己的小圈子,还可能同时属于很多不同的朋友圈.我们认为朋友的朋友都算在一个部落里,于是要请你统计一下,在一个给定社区中,到底有多少个互不相交的部落?并且检查任意两个人是否属于同 ...

  7. 如何基于Winform开发框架或混合框架基础上进行项目的快速开发

    在开发项目的时候,我们为了提高速度和质量,往往不是白手起家,需要基于一定的基础上进行项目的快速开发,这样可以利用整个框架的生态基础模块,以及成熟统一的开发方式,可以极大提高我们开发的效率.本篇随笔就是 ...

  8. 轻量级ORM框架 Bankinate

    [前言] 前面讲过ORM的前世今生,对ORM框架不了解的朋友可以参考博文:https://www.cnblogs.com/7tiny/p/9551754.html 今天,我们主要通过设计一款轻量级的O ...

  9. 云计算openstack共享组件(3)——消息队列rabbitmq

    队列(MQ)概念: MQ 全称为 Message Queue, 消息队列( MQ ) 是一种应用程序对应用程序的通信方法.应用程序通过读写出入队列的消息(针对应用程序的数据)来通信,而无需专用连接来链 ...

  10. [转帖]Windows 10 部分早期版本已完全停止技术支持服务

    Windows 10 部分早期版本已完全停止技术支持服务 2019-4-12 01:27| 发布者: cjy__05| 查看: 10186| 评论: 47|来自: pcbeta 收藏分享 转帖来源:h ...