学习笔记:springcloud

主要概念:

Eureka :注册中心
Zuul(gateway) :服务网关
Ribbon :负载均衡
Feign :服务调用
Hystrix :熔断器
版本对应关系:

Eureka 注册中心

Eureka :就是服务注册中心(可以是一个集群),对外暴露自己的地址
提供者:启动后向 Eureka 注册自己信息(地址,提供什么服务)
消费者:向 Eureka 订阅服务, Eureka 会将对应服务的所有提供者地址列表发送给消费者,并且定期更新
心跳 ( 续约 ) :提供者定期通过 HTTP 方式向 Eureka 刷新自己的状态

Eureka架构中的三个核心角色:
服务注册中心
Eureka 的服务端应用,提供服务注册和发现功能,就是刚刚我们建立的 eureka-server
服务提供者
提供服务的应用,可以是 Spring Boot 应用,也可以是其它任意技术实现,只要对外提供的是 REST风格服务即可。本例中就是我们实现的 user-service
服务消费者
消费应用从注册中心获取服务列表,从而得知每个服务方的信息,知道去哪里调用服务方。本例中就是我们实现的 consumer-demo
高可用的 Eureka Server
Eureka Server 即服务的注册中心,在刚才的案例中,我们只有一个 EurekaServer ,事实上 EurekaServer也可以是一个集群,形成高可用的 Eureka 中心 。
Eureka Server 是一个 web 应用,可以启动多个实例(配置不同端口)保证 Eureka Server 的高可用
多个 Eureka Server 之间也会互相注册为服务,当服务提供者注册到 Eureka Server集群中的某个节点时,该节点会 把服务的信息同步给集群中的每个节点,从而实现数据同步。因此,无论客户端访问到 Eureka Server集群中的任 意一个节点,都可以获取到完整的服务列表信息。
而作为客户端,需要把信息注册到每个 Eureka
负载均衡 Ribbon

Hystrix 熔断
Hystix Netflflix 开源的一个延迟和容错库,用于隔离访问远程服务,防止出现级联失败。
Hystrix为每个依赖服务调用分配一个小的线程池,如果线程池已满调用将被立即拒绝,默认不采用排队,加 速失败判定时间。
用户的请求将不再直接访问服务,而是通过线程池中的空闲线程来访问服务,如果线程池已满,或者请求超 时,则会进行降级处理
用户的请求故障时,不会被阻塞,更不会无休止的等待或者看到系统崩溃,至少可以看到一个执行结果(例如返回友好的提示信息) 。
服务降级虽然会导致请求失败,但是不会导致阻塞,而且最多会影响这个依赖服务对应的线程池中的资源,对其它 服务没有响应。 触发 Hystrix 服务降级的情况:
线程池已满
请求超时
Feign伪装
Feign 可以把 Rest 的请求进行隐藏,伪装成类似 SpringMVC Controller 一样。你不用再自己拼接 url,拼接参数等 等操作,一切都交给 Feign 去做。
Feign 中本身已经集成了 Ribbon 依赖和自动配置
Feign 默认也有对 Hystrix 的集成
Feign 的客户端

首先这是一个接口, Feign 会通过动态代理,帮我们生成实现类。这点跟 Mybatis mapper 很像
@FeignClient ,声明这是一个 Feign 客户端,同时通过 value 属性指定服务名称
接口中的定义方法,完全采用 SpringMVC 的注解, Feign 会根据注解帮我们生成 URL ,并访问获取结果
@GetMapping 中的 /user ,请不要忘记;因为 Feign 需要拼接可访问的地址
Spring Cloud Gateway 网关
Spring Cloud Gateway组件的核心是一系列的过滤器,通过这些过滤器可以将客户端发送的请求转发(路由)到对应的微服务。 Spring Cloud Gateway 是加在整个微服务最前沿的防火墙和代理器,隐藏微服务结点 IP端口信息,从而加强安全保护。 Spring Cloud Gateway 本身也是一个微服务,需要注册到 Eureka 服务注册中心。
网关的核心功能是:过滤和路由

不管是来自于客户端(PC或移动端)的请求,还是服务内部调用。一切对服务的请求都可经过网关,然后再 由网关来实现 鉴权、动态路由等等操作。 Gateway 就是我们服务的统一入口。
核心概念
路由(route 路由信息的组成:由一个 ID 、一个目的 URL 、一组断言工厂、一组Filter组成。如果路由断言为真,说明请求 URL 和配置路由匹配。
断言(Predicate Spring Cloud Gateway 中的断言函数输入类型是 Spring 5.0框架中的 ServerWebExchange Spring Cloud Gateway 的断言函数允许开发者去定义匹配来自于 HTTP Request中的 任何信息比如请求头和参数。
过滤器(Filter 一个标准的 Spring WebFilter Spring Cloud Gateway 中的 Filter 分为两种类型的 Filter,分别是 Gateway Filter Global Filter 。过滤器 Filter 将会对请求和响应进行修改处理
Spring Cloud Confifig 分布式配置中心
在分布式系统中,由于服务数量非常多,配置文件分散在不同的微服务项目中,管理不方便。为了方便配置文件集 中管理,需要分布式配置中心组件。在 Spring Cloud 中,提供了 Spring Cloud Confifig,它支持配置文件放在配置服 务的本地,也支持放在远程 Git 仓库( GitHub 、码云)。

 配置中心本质上也是一个微服务,同样需要注册到Eureka服务注册中心!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值