微服务框架SpringCloud前置概念
一 SpringCloud相关概念
1.1微服务的基础概念
1.1.1 流行的远程调用技术
1.1.1.1 RPC(remote procedure cell)
1. 进程间的通信方式,通常采用TCP传输方式;
2. 允许像调用本地服务一样调用远程服务。RPC 框架的主要目标就是让远程服务调用更简单、透明。RPC框架负责屏蔽底层的传输方式(TCP或者 UDP)、序列化方式(XML/JSON/二进制)和通信细节
3. RPC流程通信图
1.1.1.2 RESTful远程调用
是个啥?
- REST,即Representational State Transfer的缩写,如果一个架构符合REST原则,就称它为RESTful架构。也即是说一个RESTful架构应该有以下三个特征:1、每一个URI代表一种资源; 2、客户端和服务器之间,传递这种资源的某种表现层 3、客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化
RESTful的组成: - 资源
所谓"资源",就是网络上的一个实体,或者说是网络上的一个具体信息。它可以是一段文本、一张图 片、一首歌曲、一种服务,总之就是一个具体的实在。你可以用一个URI(统一资源定位符)指向它, 每种资源对应一个特定的URI - 表现层
我们把"资源"具体呈现出来的形式,叫做它的"表 现层"(Representation)。 - 状态转化
互联网通信协议HTTP协议,是一个无状态协议。这意味着,所有的状态都保存在服务器端。因 此,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)客户端用到的手段,只能是HTTP协议。具体来说,就是HTTP协议里面,四个表示操作方式的动词: GET、POST、PUT、DELETE。它们分别对应四种基本操作:GET用来获取资源,POST用来新建资源 (也可以用于更新资源),PUT用来更新资源,DELETE用来删除资源
1.1.2 CAP原理
1.1.2.1 CAP是啥?用来干啥的?
分布式系 统的最大难点,就是各个节点的状态如何同步。CAP 定理是这方面的基本定理,
CAP理论讲分布式系统中的三个特性进行了归纳:一致性,可用性,分区容忍性,学习得知,任何分布式系统只可以同时满足其中的两个特性,没法三折兼顾,常见的分布式架构满足CAP中的CA(放弃分区容忍性)、**AP**(放弃一致性)、**CP**(放弃可用性)
1.2SpringCloud的概念
1.2.1 SpringCloud是啥?
Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基 础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用 Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家 公司开发的比较成熟、经得起实际考验的服务框架组合起来,通过Spring Boot风格进行再封装屏蔽掉 了复杂的配置和实现原理,最终给开发者留出了一套简单易懂、易部署和易维护的分布式系统开发工具包。
1.2.2 SpringCloud学习前前置微服务知识
1.2.2.1 服务注册与发现
服务注册:服务实例将自身服务信息注册到注册中心。这部分服务信息包括服务所在主机IP和提供服务
的Port,以及暴露服务自身状态以及访问协议等信息。
服务发现:服务实例请求注册中心获取所依赖服务信息。服务实例通过注册中心,获取到注册到其中的 服务实例的信息,通过这些信息去请求它们提供的服务
1.2.2.2 负载均衡
负载均衡是高可用网络基础架构的关键组件,通常用于将工作负载分布到多个服务器来提高网站、应用、数据库或其他服务的性能和可靠性。
1.2.2.3 熔断
在互联网系统中,当下游服务因访问压 力过大而响应变慢或失败,上游服务为了保护系统整体的可用性,可以暂时切断对下游服务的调用。这种==牺牲局部,保全整体的措施==就叫做==熔断==。
1.2.2.4 链路追踪
随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求往往需要涉及到多个服务。互联网应 用构建在不同的软件模块集上,这些软件模块,有可能是由不同的团队开发、可能使用不同的编程语言 来实现、有可能布在了几千台服务器,横跨多个不同的数据中心。因此,就需要对一次请求涉及的多个服务链路进行日志记录,性能监控即链路追踪
1.2.2.5 API网关
API网关直面意思是将所有API调用统一接入到API网关层,由网关层统一接入和输出。一个网关的基本 功能有:统一接入、安全防护、协议适配、流量管控、长短链接支持、容错能力。有了网关之后,各个 API服务提供团队可以专注于自己的的业务逻辑处理,而API网关更专注于安全、流量、路由等问题。