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

三层架构(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. python3 多线程的使用

    示例1: import threadingfrom time import sleep class forThread(threading.Thread): def __init__(self, ev ...

  2. android菜鸟,了解android工程目录结构

  3. China Tightens Recycling Import Rules

    China Tightens Recycling Import Rules We have all seen the pictures of cities in China with air poll ...

  4. springMVC框架核心方法调用源码解析

  5. pytorch Debug —交互式调试工具Pdb (ipdb是增强版的pdb)-1-在pytorch中使用

    参考深度学习框架pytorch:入门和实践一书第六章 以深度学习框架PyTorch一书的学习-第六章-实战指南为前提 在pytorch中Debug pytorch作为一个动态图框架,与ipdb结合能为 ...

  6. Selenium自动化测试之学会元素定位

    这是我经常被问到的一个问题,也是我很讨厌回答的问题,因为要想回答这个问题需要知道上下文.什么样式的元素,有哪些属性,是否有表单嵌套,都尝试了哪些定位方法...而且没几个提问者能事先详细的说明这些.哪儿 ...

  7. 转 HttpClient 设置连接超时时间

    要: HttpClient 4.5版本升级后,设置超时时间的API又有新的变化,请大家关注. HttpClient升级到4.5版本后,API有很多变化,HttpClient 4之后,API一直没有太稳 ...

  8. 静态代理与JDK动态代理

    demo地址: https://github.com/ZbLeaning/leaning 代理: 为其他对象提供一种代理以控制对这个对象的访问.分为静态代理和动态代理.代理模式的目的就是为真实业务对象 ...

  9. 02-JavaScript语法

    JavaScript语法 1.JS的引入 1- 直接在<script>标签下引入 <!DOCTYPE html> <html lang="zh-CN" ...

  10. Firefox 中出现的 “Network Protocol Error”怎么办

    Mozilla Firefox 多年来一直是我的默认 Web 浏览器,我每天用它来进行日常网络活动,例如访问邮件,浏览喜欢的网站等.今天,我在使用 Firefox 时遇到了一个奇怪的错误.我试图在 R ...