学习笔记:springcloud

本文介绍了微服务架构中的核心组件,包括Eureka注册中心、Zuul网关、Ribbon负载均衡、Feign服务调用及Hystrix熔断器等。详细解释了各组件的功能、工作原理及其在微服务架构中的作用。

主要概念:

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

首先这是一个接口,Feign会通过动态代理,帮我们生成实现类。这点跟Mybatismapper很像
@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和配置路由匹配。
断言(PredicateSpring Cloud Gateway中的断言函数输入类型是Spring 5.0框架中的 ServerWebExchangeSpring Cloud Gateway的断言函数允许开发者去定义匹配来自于HTTP Request中的 任何信息比如请求头和参数。
过滤器(Filter一个标准的Spring WebFilterSpring Cloud Gateway中的Filter分为两种类型的Filter,分别是Gateway FilterGlobal Filter。过滤器Filter将会对请求和响应进行修改处理
Spring Cloud Confifig分布式配置中心
在分布式系统中,由于服务数量非常多,配置文件分散在不同的微服务项目中,管理不方便。为了方便配置文件集 中管理,需要分布式配置中心组件。在Spring Cloud中,提供了Spring Cloud Confifig,它支持配置文件放在配置服 务的本地,也支持放在远程Git仓库(GitHub、码云)。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值