由于射击App的后端本次将采用分布式架构开发,本文将记录b站学习的Dubbo教程

学习目标

  • 互联网架构演变趋势
  • RPC基于RMI的简单实现
  • Dubbo介绍
  • Dubbo-admin
  • Zookeeper
  • SpringBoot整合Dubbo

互联网架构演变趋势

随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。
dubbo架构.jpg

单一应用架构

  • 单体架构也称之为单体系统或者是单体应用。就是一种把系统中所有的功能、模块耦合在一个应用中的架构方式。一般只操作一个数据库。代表技术:Struts2SpringMVCSpringMybatis等。
  • 特点:打包成一个独立的单元(导成一个唯一的jar包或者是war包)。会以一个进程的方式来进行
  • 优点:项目易于管理、部署简单
  • 缺点:测试成本高、可伸缩性差、可靠性差、迭代困难、跨语言程度差、团队协作难

RPC架构

  • 远程过程调用。他一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。代表技术:Thrift(Facebook开发的系统内部各语言之间细条通讯的RPC框架,带有强大的代码生成引擎,支持跨语言、多平台调用)、Hessian(基于HTTP协议的RPC框架,提供RMI功能,且采用二进制协议的轻量级框架)等等.
  • 特点:应用直接调用服务,服务之间是隔离的.
  • 缺点:服务过多时,管理成本高昂。服务治理,服务注册、发现,服务容错,服务耿总,服务网关,IP暴露等都是此架构无法避免的问题。

SOA架构

  • SOA(Service oriented Architecture):面向服务架构
  • ESB(Enterprise Service Bus):企业服务总线,服务中介。主要是提供了一个服务与服务之间的交互。
  • ESB包含的功能如:负载均衡,流量控制,加密处理,服务的监控,异常处理,监控告急等等。代表技术:Mule(Java为核心的消息框架和整合平台,提供服务中介,数据转换,消息路由、服务创建和托管等功能。不是开源的技术,是付费产品。)、WSO2(开源的服务总线,提供了SOA基础设施的搭建,内置数据服务支持,服务角色管理等功能)。

微服务架构:

  • 微服务是一种架构风格。一个大型的复杂软件应用、由一个或多个微服务组成。系统中的各个微服务可被独立部署,各个微服务之间是松耦合的。每个微服务仅关注于完成一件任务并很好的完成该任务。微服务就是一个轻量级的服务治理方案。对比SOA架构,使用注册中心代替ESB服务总线。注册中心相比服务总线来说,更加轻量级。代表技术:SpringCloud,Dubbo等等。
  • 架构风格:项目的一种设计模式。常见的架构风格有:
    客户端与服务端的:在使用之前需要安装客户端的应用。如:QQ,网络游戏等
    基于组件模型的架构:如:EJB(Session Bean实现业务逻辑的、Entity域模型、Manager Driven Bean驱动管理模型等)
    分层架构(单体架构):典型的就是MVC架构
    面向服务架构:将系统拆分为若干服务,业务功能基于服务实现,服务可独立配置、维护、运行、且多服务有统一的管理平台(ESB、注册中心)
最后修改:2021 年 03 月 15 日