spring cloud H版本

1.微服务架构定义:

微服务架构是一种架构模式,它提倡将单一应用程序划分成一小组的服务,服务之间互相协调,互相配合,为用户提供最终价值。每个服务运行在其独立的进程中,服务与服务间采用轻量级的通信机制互相协调(通常是基于HTTP协议的RESTful API)。每个服务都围绕着具体业务进行构建,并且能够被独立的部署到生产环境、类生产环境等。另外,应当尽量避免统一的、集中式的服务管理机制,对具体的一个服务而言,应根据业务上下文,选择合适的语言、工具对其进行构建。

2.远程调用

RestTemplate提供了多种便捷访问远程Http服务的方法

是一种简单便捷的访问restful服务模板类,是Spring提供的用于访问Rest服务的客户端模板工具集

3.服务治理:

SpringCloud封装了Netflix公司开发的Eureka模块来实现服务治理

在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所以需要使用服务治理,管理服务于服务之间依赖关系,可以实现服务调用,负载均衡,容错等。实现服务发现与注册。

4.服务注册:

Eureka:采用正常运行S的设计架构,EurekaServer作为服务注册功能的服务器,它是服务注册中心,而系统中的其他微服务,使用Eureka的客户端连接到Eureka Server并维持心跳连接。这样系统的维护人员就可以通过EurekaServer来监控系统中各个微服务是否正常运行。

在服务注册与发现中,有一个注册中心。当服务启动的时候,会把当前自己服务器的信息比如服务地址,通讯地址等以别名方式注册到注册中心上。另一方(消费者|服务提供者),以该别名的方式去注册中心上获取到实际的服务通讯地址。然后在实现本地RPC调用RPC远程调用框架核心设计思想:在于注册中心,因为使用注册中心管理每个服务与服务之间的一个依赖关系(服务治理概念).在RPC远程框架中,都会有一个注册中心(存放服务地址相关信息(接口地址))

Eureka包含两个组件:EurekaServer与Eureka Client

EurekaServer提供服务注册服务

各个微服务节点通过配置启动后,会在EurekaServer中进行注册,这样EurekaServer中的服务注册表中将会存贮所有可用服务节点的信息,服务节点的信息可以在界面中直观看到

EurekaClient通过注册中心进行访问

是一个Java客户端,用于简化EurekaServer的交互,客户端同时也具备一个内置的、使用轮询(round-robin) 负载算法的负载均衡器。在应用启动后,将会向EurekaServer发送心跳(默认周期30秒)。如果EurekaServer在多个心跳周期内没有接受到某个节点的心跳。EurekaServer将会从服务注册中把这个服务节点移除。(默认90秒)

服务提供者注册到eurekaServer,消费者通过服务别名调用

5.Eureka集群

互相注册,相互守望

6.服务发现 Discovery

对于注册进eureka里面的微服务,可以通过服务发现来获得该服务的信息

引入的包是

import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

7.Eureka自我保护机制

一句话:某时刻某一个微服务不可用了,Eureka不会立即清理,依旧会对该微服务的信息进行保存

导致原因:属于CAP里面的AP分支

在自我保护模式中,EurekaServer会保护服务注册表中的信息

一句话:好死不如赖活着。

8.Ribbon+RestTemplate 接口调用

9.OpenFeign 接口调用

10.Hystrix 服务熔断降级限流

Hystrix是一个用于处理分布式系统的延迟和容错的开源库,在分布式系统里,许多依赖不可避免的会调用失败,比如超时,异常等

Hystrix能够保证在一个依赖出问题的情况下,不会导致整体服务失败,避免级联故障,以提高分布式系统的弹性

“ 断路器”本身是一种开关装置,当某个服务单元发生故障之后,通过断路器的故障监控(类似熔断保险丝),向条用方返回一个符合预期的,可处理的备选响应,而不是长时间的等待或者抛出调用方法处理异常,这样就保证了服务调用方的线程不会被长时间、不必要的占用,从而避免了故障在分布式系统中的蔓延、乃至雪崩。

@HystrixCommand(fallbackMethod = "paymentInfo_TimeOutHandler",commandProperties = {
@HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "3000")})

启动类要激活@EnableCircuitBreaker

1.运行异常,2.超时 Hystrix服务降级fallback

hystrix服务降级可以放在服务端,也可以放在客户端,一般放在客户端进行服务降级

2.hystrixboard流量监控实时画面

实心圆:共有两种含义。它通过颜色的变化代表了实例的健康程度,它的健康程度从绿色<黄色<橙色<红色递减

该实心圆除了颜色的变化之外,它的大小也会根据实例的请求流量发生变化,流量越大该实心圆就越大。所以通过改实心圆的展示,就可以在大量的实例中快速的发现故障实例和高压力实例。

服务网关ZUUL, 基于I/O阻塞的gateway,zuul1是基于servlet阻塞的网关

springcloud gateway异步非阻塞的服务网关,netty底层

三大核心:路由,断言,过滤

一句话概括:客户端向spring cloud gateway 发出请求,然后在gateway handler mapping 中找到与请求相匹配的路由,将其发送到Gateway web handler

handler再通过指定的过滤器链来将请求发送到我们实际的服务执行业务逻辑,然后返回

过滤器之间用虚线分开是因为过滤器可能会在发送代理请求前或之后执行业务逻辑

filter在pre类型的过滤器可以做参数校验,权限校验,流量监控,日志输出,协议转换等

在post类型的过滤器中可以做响应内容,响应头的修改,日志的输出,流量监控的等有着非常重要的作用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值