微服务
概述
- 微服务是一种架构风格
- 把一个项目拆分成独立的多个服务,多个服务是独立运行,每个服务占用独立进程
Springle Cloud
- Spring cloud并不是一种技术,是很多技术的总称,很多技术的集合
- Spring cloud里面有很多框架(技术),使用Spring cloud里面这些框架实现微服务操作
- 使用Spring cloud需要依赖Spring boot
Spring cloud调用接口的过程:
Feign --> Hystrix --> Ribbon --> Http Client(apache http componrntd / Okhttp) --> 具体交互流程如下图所示
- Feign :转化请求Feign是一个http请求调用的轻量级框架,可以以Java接口注解的方式调用Http请求,封装了Http调用流程。
feign是服务发现即用 @FeignClient(name = “service-vod”)找到服务名,并根据接口中的方法地址进行调用 - Hystrix:熔断处理机制 Feign的调用关系,会被Hystrix代理拦截,对每一个Feign调用请求,Hystrix都会将其包装成HystrixCommand,参与Hystrix的流控和熔断规则。如果请求判断需要熔断,则Hystrix直接熔断,抛出异常或者使用FallbackFactory返回熔断Fallback结果;如果通过,则将调用请求传递给Ribbon组件。
在远程调用过程中若被调的服务挂掉了,调不到就会断掉链接,能调到就放行,对系统起到保护功能 - Ribbon:服务地址选择 当请求传递到Ribbon之后,Ribbon会根据自身维护的服务列表,根据服务的服务质量,如平均响应时间,Load等,结合特定的规则,从列表中挑选合适的服务实例,选择好机器之后,然后将机器实例的信息请求传递给Http Client客户端,HttpClient客户端来执行真正的Http接口调用;
负载均衡 - HttpClient :Http客户端,真正执行Http调用根据上层Ribbon传递过来的请求,已经指定了服务地址,则HttpClient开始执行真正的Http请求
真正的通过接口路径进行调用的过程
Spring cloud相关基础服务组件
Nacos: Spring clould Alibaba服务注册与配置中心
Nacos英文全称为:Dynamic Naming and Configuration Service:
组成部分 | 全称 | 描述 |
---|---|---|
Na | naming/nameServer | 即服务注册中心,与 Spring Cloud Eureka 的功能类似。 |
co | configuration | 即配置中心,与 Spring Cloud Config+Spring Cloud Bus 的功能类似。 |
s | service | 即服务,表示 Nacos 实现的服务注册中心和配置中心都是以服务为核心的。 |
我们可以将 Nacos 理解成服务注册中心和配置中心的组合体,它可以替换 Eureka 作为服务注册中心,实现服务的注册与发现;还可以替换 Spring Cloud Config 作为配置中心,实现配置的动态刷新
Nacos两大组件
与 Eureka 类似,Nacos 也采用 CS(Client/Server,客户端/服务器)架构,它包含两大组件,如下表
组件 | 描述 | 功能 |
---|---|---|
Nacos Server | Nacos 服务端,与 Eureka Server 不同,Nacos Server 由阿里巴巴团队使用 Java 语言编写并将 Nacos Server 的下载地址给用户,用户只需要直接下载并运行即可。 | 1. Nacos Server 可以作为服务注册中心,帮助 Nacos Client 实现服务的注册与发现。 2.Nacos Server 可以作为配置中心,帮助 Nacos Client 在不重启的情况下,实现配置的动态刷新。 |
Nacos Client | Nacos 客户端,通常指的是微服务架构中 |