#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服务的注册中心,工业强度较高,可用生产环境,并推荐使用。web
在分布式架构体系中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 分布式架构实现技术redis