随笔分类 - SpringCloud
摘要:JWT token的组成 JWT token由三个部分组成,头部(header)、有效载荷(payload)、签名(signature), 官网: https://jwt.io/ head header部分由 typ 和 alg 组成,typ的全称是(type,类型)、alg全称(algorithm
阅读全文
摘要:微服务架构下的统一授权 识别客户端的身份,并且能够保存这个身份的状态 HTTP协议无状态协议: 浏览器的Cookie(disk / mem),客户端的状态存储 服务器端的session(服务端的状态存储) 集群模式下的会话丢失 Session Sticky IPHASH |hash(ip)|%目标服
阅读全文
摘要:链路跟踪slueth -服务器的监控(cpu、内存、磁盘) 应用的监控 () 链路监控的开源技术 Zipkin Pinpoint skywalking spring cloud slueth slueth生成链路跟踪的数据,然后把数据上报到Zipkin 。 。。。未完待续
阅读全文
摘要:Spring Cloud Gateway的核心概念 Route 路由,它是网关的基础元素,包含ID、目标URI、断言、过滤器组成,当前请求到达网关时,会通过Gateway Handler Mapping,基于断言进行路由匹配,当断言为true时,匹配到路由进行转发 Predicate,断言,它可以允
阅读全文
摘要:网关的由来 在微服务架构中,每个服务都是一个可以独立开发和运行的组件,而一个完整的微服务架构由一系列独立运行的微服务组成。其中每个服务都只会完成特定领域的功能,比如订单服务提供与订单业务场景有关的功能、商品服务提供商品展示功能等。各个微服务之间通过轻量级通信机制 REST API 或者 RPC 完成
阅读全文
摘要:创建MyHystrixCommand @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyHystrixCommand { /** * 默认超时时间 * @re
阅读全文
摘要:executeCommandAndObserve 定义不同的回调,doOnNext、doOnCompleted、onErrorResumeNext、doOnEach。 调用executeCommandWithSpecifiedIsolation获得执行命令的Observable 若执行命令超时特性开
阅读全文
摘要:Hystrix的核心原理 针对类级别的配置(自定义) 可配置化的降级策略: 信号量/线程 / 超时(1s)、熔断(错误率) HystrixCommandProperty 可以识别的降级边界: @HystrixCommand(Spring AOP) HystrixCommand 抽象类 数据采集: 如
阅读全文
摘要:熔断的目的是为了起到保护作用(熔断是一种降级策略) 降级 主动降级,促销的时候关闭非核心服务. 被动降级, 熔断降级、限流降级 Hystrix中的三种降级方案 熔断触发降级 @HystrixCommand(commandProperties = { @HystrixProperty(name="ci
阅读全文
摘要:服务发现 我们继续来研究服务的发现过程,就是客户端需要能够满足两个功能 在启动的时候获取指定服务提供者的地址列表 Eureka server端地址发生变化时,需要动态感知 DiscoveryClient构造时进行查询 DiscoveryClient(ApplicationInfoManager ap
阅读全文
摘要:多级缓存设计 Eureka Server存在三个变量:(registry、readWriteCacheMap、readOnlyCacheMap)保存服务注册信息,默认情况下定时任务每30s将readWriteCacheMap同步至readOnlyCacheMap,每60s清理超过90s未续约的节点,
阅读全文
摘要:Eureka Server收到请求之后的处理 Eureka Server端如何对请求过来的服务实例数据进行了存储的? 请求入口在: com.netflix.eureka.resources.ApplicationResource.addInstance() 。 这里可以发现,这里所提供的REST服务
阅读全文
摘要:服务注册触发路径 这个动作在spring boot的启动方法中的refreshContext中完成 SpringApplication.run() -> this.refreshContext(context); -> this.refresh(context); -> ServletWebServ
阅读全文
摘要:Eureka源码架构图 Eureka的自我保护机制的原理 Eureka Server在运行期间会去统计心跳失败的比例在15分钟之内是否低于85% , 如果低于85%,Eureka Server会认为当前实例的客户端与自己的心跳连接出现了网络故障,那么Eureka Server会把这些实例保护起来,让
阅读全文
摘要:OpenFegin源码解析图 ① BeanDefinitionBuilder definition = BeanDefinitionBuilder.genericBeanDefinition(FeignClientFactoryBean.class); Spring Cloud FengnClien
阅读全文
摘要:FeignClientsRegistrar实现了ImportBeanDefinitionRegistrar,它是一个动态注入bean的接口,Spring Boot启动的时候,会去调用这个类中的registerBeanDefinitions来实现动态Bean的装载。 它的作用类似于ImportSele
阅读全文
摘要: 
阅读全文