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

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 业务功能

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

你可能感兴趣的:(高强度学习训练第三天总结: 分布式架构思路整理)