猿码天地-SpringCloud技术栈
2021-03-22 17:41:56 1 举报
AI智能生成
猿码天地-SpringCloud技术栈
作者其他创作
大纲/内容
服务注册与发现
Eureka
服务注册与发现组件
服务注册
Eureka Server
基本工作流程
1、Eureka Client向Eureka Server注册,将自己的客户端信息提交给Eureka Server
2、Eureka Client通过向Eureka Server发送心跳来续约,默认30秒
3、如果某个Eureka Client不可用,则Eureka Server剔除该服务
高可用
集群
高可用
服务发现
Eureka Client
基本工作流程
Eureka Client向Eureka Server请求服务清单,Eureka Server 会返回一份只读清单给客户端
角色划分
注册中心
Register Service
服务提供者
Provider Service
服务消费者
Consumer Service
Consul
客户端负载均衡
Ribbon
Ribbon是一个客户端负载均衡器
服务消费
调用被注解@LoadBalanced修饰过的RestTemplate
LoadBalancerClient
负载均衡器核心类
@LoadBalanced
负载均衡原理:维护了一个被@LoadBalance注解的RestTemplate列表,并给该列表中的RestTemplate对象增加了拦截器,拦截器将远程调度方法交给了Ribbon负载均衡器LoadBalancerClient处理。
负载均衡策略
轮询
权重轮询
随机
重试
...
声明式服务调用
Feign
Feign是一个声明式的Restful网络请求客户端
Feign客户端使用
1、通过注解@EnableFeignClients 开启 Feign Client 的功能
2、在接口上加@FeignClient 注解来声明一个 Fe ignClient。格式为@FeginClient("服务名”)
服务调用
1、程序启动时,扫描所有的@FeiginClient注解
2、当接口的方法被调用时,通过JDK的代理来生成 RequestTemplate模板对象
3、根据RequestTemplate 再生成Http 请求的request对象
4、Request 对象交给 Client 去处理 其中 Cli nt的网络请求框架可以是HttpURLConnect ion、HttpClient、OkHttp
负载均衡
通过Ribbon实现
服务容错保护
Hystrix
Hystrix是Netstflix公司开源的一个项目,它提供了熔断器功能,能够阻止分布式系统中出现联动故障。
相关概念
服务雪崩
服务雪崩效应是一种因服务提供者的不可用导致
服务调用者的不可用,并将不可用逐渐放大的过程
服务调用者的不可用,并将不可用逐渐放大的过程
断路器
用干防止服务雪崩,监控方法调用过程的失败。一旦该方法调用发生的失败次数在短时间内达到一定的阀值,那么这个断路器将会开启,调用该方法直接返回异常。而不再真实调用。
服务降级
在整体资源不够的时候,适当放弃部分服务,将主要的资源投放到核心服务中。
服务隔离
将系统中的服务提供者隔离起来,一个服务提供者延迟升高或者失败,并不会导致整个系统失败。
应用
RestTemplate和Hystrix
1、通过@EnableCircuitBreaker注解开启 Hystrix
2、通过@HystrixCommand注解将方法纳入 Hystrix 的监控
Feign和Hystrix
1、配置开启Hystrix
2、指定回滚类
3、指定的回滚类实现instanceClent,提供相应的回滚方法
分布式配置中心
Config
Spring Cloud 中提供了分布式配置中 Spring Cloud Config ,为外部配置提供了客户端和服务器端的支持。
应用
1、配置客户端
2、配置服务端
3、配置验证
4、配置动态更新
容器化
Docker
Kubernetes
服务链路追踪
Sleuth
Spring Cloud Sleuth是Spring Cloud 的组件,它的主要功能是在分布式系统中提供服务链路追踪的解决方案。
用法
添加spring-cloud-starter-sleuth依赖即可
功能增强
Logstash(集中追踪信息)
Zipkin(时间消耗监控)
消息中间件(异步收集)
数据存储
原理
Trace
Span
Zipkin
认证与授权
Security
Oauth2.0
Oauth2.0是一个标准的授权协议。Spring Cloud 构建的微服务系统中可以使用 Spring Cloud OAuth2.0 来保护微服务系统。
角色
Authorization Server
Resource Server
Client
spring-cloud-starter-oauth2
spring-cloud-starter-security
spring-security-oauth2
spring-security-jwt
spring-cloud-oauth2使用
OAuth2 Provider
OAuth2 Client
消息总线
Bus
使用 Spring Cloud Bus, 可以非常容易地搭建起消息总线。
消息总线
消息总线:使用轻量级的消息代理来构建一个公共的消息主题,该主题生产的消息可以被所有实例监听到。
消息代理:消息的路由
开源产品
Kafka
RabbitMQ
实现
Kafka
Broker
Topic
Producer
Consumer
RabbitMQ
Broker
Exchange
Queue
Producer
Consumer
原理
监听器
API网关
Zuul
Zuul是Netflix孵化的一个网关解决方案
应用
构建网关
请求路由
请求过滤
业务场景
权限集成
限流
动态路由
灰度发布
工作原理
Filter链
Gateway
Spring Cloud Gateway 是 Spring 官方基于 Spring 5.0、 Spring Boot 2.0 和 Project Reactor 等 技术开发的网关, Spring Cloud Gateway 旨在为微服务架构提供简单、 有效且统一的 API 路由 管理方式。
应用
路由
过滤
自定义路由
原理
HttpWebHandlerAdapter -->DispatcherHandler-->对应处理器-->Filter链
0 条评论
下一页