失效链接处理 |
SpringCloud分布式微服务架构入门 PDF 下载
本站整理下载:
相关截图:
主要内容:
1. 简介
1.1 一些概念
1.1.1什么是分布式系统
简单来说分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统。从引用层面来说,两个应用分别运行在两台主机上,它们相互协作共同完成一个服务(或者功能),那么理论上这两个程序所组成的系统,也可以称作是“分布式系统”。当然,这个两个程序可以是不同的程序,也可以是相同的程序。如果是相同的程序,我们又可以称之为“集群”。所谓集群,就是将相同的程序,通过不断横向扩展,以提高服务能力的方式。
1.1.2面向服务架构SOA(service-oriented architecture)
SOA是构造分布式系统的方法,通过组合业务逻辑暴露可用服务的架构。它将应用程序功能作为服务发送给最终用户或者其他服务。SOA强调松耦合、无状态、可复用、可组合、服务自治。
1.1.3 微服务架构MSA(microservicearchitecture)
微服务是指单个小型并且具有业务功能的服务,一般就是将一个完整的应用从数据存储开始垂直拆分成多个不同的服务,并采用轻量级的机制进行通信(一般是HTTP形式的API)。这些服务都是围绕业务能力来构建,通过全自动部署工具来实现独立部署、独立维护、独立扩展。它是SOA更精细的一种划分,而微服务是去中心化的分布式软件架构。
1.1.4 分布式框架的引入
现如今微服务架构十分流行,也是搭建分布式服务的首选方案,而采用微服务构建系统也会带来更清晰的业务划分和可扩展性。同时,支持微服务的技术栈也是多种多样的,下面将来对比Alibaba旗下的Dubbo和Spring旗下的Spring Cloud。
1.2 选型
1.2.1 Dubbo
1.2.1.1 基本介绍和结构
Dubbo是阿里巴巴服务化治理方案的核心框架,一个致力于提供高性能和透明化的RPC(Remote Procedure Call)远程服务调用方案,以及提供服务自动注册、自动发现等高效服务治理方案的分布式服务框架。框架结构图如下:
节点角色说明:
Provider: 暴露服务的服务提供方
Consumer: 调用远程服务的服务消费方,可以进行负载均衡、服务降级的选择。。
Registry: 服务注册与发现的服务治理中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器
调用关系说明:
服务容器(Container)负责启动,加载,运行服务提供者。
服务提供者(Provider)在启动时,向注册中心注册自己提供的服务。
服务消费者(Consumer)在启动时,向注册中心订阅自己所需的服务。
注册中心(Registry)返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心(Monitor)。
1.2.1.2 常用核心组件和功能
a) Zookeeper
Dubbo的服务发现注册依赖组件。
满足Consistency(一致性). Partition tolerance(分区容忍性)原则。
b)Monitor
监控中心。
监控服务的运行使用情况。
c)RPC
使用RPC通讯。
需要依赖Netty等包。
性能强于REST。
支持多协议(dubbo、rmi等等)。
1.2.2Spring Cloud
1.2.2.1 基本介绍和结构
Spring Cloud 是一系列分布式开源框架的集合,为开发者提供了快速构建分布式系统的通用模型的工具(例如配置管理、服务注册和发现、断路器、负载均衡、智能路由、控制总线等等)。它为微服务架构提供了更加全面的技术支持。基本的框架结构如下:
|