• 高强度学习训练第三天总结: 分布式架构思路整理


    1.项目架构

    1.1单一架构

    描述:一个项目只有一个工程
    其他名称:all in one 或 "单击版"

    1.2分布式架构

    1.2.1伪分布式

    开发时使用了多个工程,但在服务器上运行时只有一个War包。
    特性:垂直拆分

    1.2.2真正的分布式

    通过网络来进行方法的远程调用

    2.方法本地调用和远程调用

    2.1 本地调用

    调用当前项目的内部方法,调用过程没有经过网络。

    2.2远程调用

    一个工程内的一个方法通过网络去调用另一个工程的一个方法

    2.3实现方法远程调用的技术

    2.3.1 webservice

    webService 不是一个具体的技术,而是一系列方法远程调用技术的统称。而且很古老

    2.3.2 Dubbo+Zookeeper

    Dubbo 是阿里开发的一款RPC框架---底层基于RPC(远程过程调用)来远程调用和服务治理框架。
    Zookeeper 是 Apache Hadoop 是一个树形的目录服务,支持变更推送,适合作为Dubbo服务的注册中心,工业强度较高,可用生产环境,并推荐使用。

    在分布式架构体系中Dubbo扮演了服务治理框架的角色,Zookeeper扮演了服务注册中心的角色。

    2.3.4 SpringBoot + SpringCloud

    Spring boot 是 Spring 的一套快速配置脚手架,可以基于spring boot 快速开发单个微服务,Spring Boot,看名字就知道是Spring的引导,就是用于启动Spring的,使得Spring的学习和使用变得快速无痛。不仅适合替换原有的工程结构,更适合微服务开发。
    Spring Cloud基于Spring Boot,为微服务体系开发中的架构问题,提供了一整套的解决方案——服务注册与发现,服务消费,服务保护与熔断,网关,分布式调用追踪,分布式配置管理等。

    2.4方法远程调用的意义

    2.4.1 对项目内部来说

    让我们实现分布式架构。

    2.4.2 对项目外部来说

    让我们能调用外部的第三方接口。例如微信支付,物流信息,天气预报。

    3.分布式架构的优缺点

    3.1模块化程度更高

    功能更加单一,有利于开发维护,让项目更容易开发,维护,分工。也是高内聚低耦合的一种体现。

    3.2提升性能

    需要用到分布式架构的项目往往是访问量很大的互联网项目。
    集群(同构): 多个服务器运行相同的模块
    分布式(异构):多个服务器运行不同的模块

    3.3缺点

    相对于单一架构结构更复杂,部署更复杂,同时存在数据不一致的问题,需要通过分布式事务解决。

    4.服务

    4.1 接口

    对外暴露具体功能的接口,已经包括了外部调用时所需要的全部信息,所以这个接口就做成了整个功能的代表。
    所以在团队交流时,就使用接口指代整个工程。
    “写接口”: 开发接口代表的工程。
    “调接口”:指的是要调用接口的工程

    4.2 服务

    和操作系统提供的“守护进程”形式服务很像,它持续在运行,实时可以相应请求。
    提供服务。
    服务提供者:provider
    服务消费者:consumer

    4.3 SOA

    原形:Service Oriented Architecture
    面向服务架构。
    设计项目架构时,底层基于“服务”之间的调用设计项目架构。把相同功能封装到一个或一组服务中。

    4.4 微服务

    在服务的基础上,微小化服务。复用程度更高。

    5.中间件

    5.1 传统开发的组件

    浏览器调用->Controller->service->mapper->database

    5.2 中间件

    redis 缓存
    ElasticSearch 搜索
    ActiveMQ 异步通信
    FastDFS 分布式文件存储服务器

    6.由浅入深了解/介绍分布式系统

    6.1 分布式架构实现技术

    • Dubbo+Zookeeper
    • SpringBoot+SpringCloud

    6.2 工程

    • 工程清单
    • 工程关系
      • 继承
      • 聚合
      • 依赖
    • 工程的作用

    6.3 中间件

    • 用到了哪些中间件
    • 具体中间件和哪些功能相关

    6.4 一个请求处理的流程

    浏览器->consumer->provider->中间件/provider->返回值

    6.5 业务功能

    子系统->模块->子模块->类->。。。

  • 相关阅读:
    vim同时打开编辑多个文件
    OOB区之初认识
    nandflash擦除、写操作的状态判断
    NFS挂载文件系统:unable to get mount port number from server, using default
    交叉调试出错
    (转)C++中extern “C”含义深层探索
    arm汇编程序中的[|]
    nanflash编程的地址问题
    c# ListView控件的常用屬性、方法及事件
    ListBox常用屬性和常用事件
  • 原文地址:https://www.cnblogs.com/godoforange/p/11536200.html
Copyright © 2020-2023  润新知