logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

微服务组件源码1——服务调用概述

Feign 集成 RestTemplate、Ribbon 实现了客户端的负载均衡的 Http 调用,并对原调用方式进行了封装,使得开发者不必手动使用 RestTemplate 调用服务,而是声明一个接口,并在这个接口中标注一个注解即可完成服务调用,这样更加符合面向接口编程的宗旨,客户端在调用服务端时也不需要再关注请求的方式、地址以及restTemplate是 forObject 还是 forEnt

#java#微服务#ribbon
微服务组件源码2——Spring Ribbon原理(基于RibbonLoadBalancerClient)

Ribbon 负载组件的内部就是集成了 LoadBalancerClient 负载均衡客户端,所以 Ribbon 负载均衡的原理本质也跟上面介绍的 LoadBalancerClient 原理一致,负载均衡器 Ribbon 默认会通过 Eureka Client 向 Eureka 服务端的服务注册列表中获取服务的信息,并缓存一份在本地 JVM 中,根据缓存的服务注册列表信息,可以通过 LoadBal

#java#ribbon#微服务
微服务组件源码3——OpenFeign的原理

* 代码架构- 顶级接口Client表示一个通信客户端,只有一个execute方法,其实现类有多种,有提供最基本通信功能的ApacheClient、OKhttpClient、- 还有其他装饰过的实现类,如提供负载均衡的通信客户端LoadBlancerFeignClient,对基本Client进行再次封装,负载功能由FeignLoadBlancer提供其核心的选择服务实例的还能就是由ILoadBal

#java#微服务
微服务组件源码4——Setinel源码整体流程

* SphU.entry方法主流程图* Context、Entry、Node关系图* 整体流程Entry entry = null;// 务必保证 finally 会被执行try {// 1、进行Sentinel拦截// 资源名可使用任意有业务语义的字符串,注意数目不能太多(超过 1K),超出几千请作为参数传入而不要直接作为资源名// EntryType 代表流量类型(inbound/outbou

#sentinel
微服务组件源码5——Setinel核心流程详解

Node负责指标统计,包含每秒/每分钟QPS、Thread、RT等指标。public interface Node extends OccupySupport, DebugSupport {//每分钟请求数,pass + blocklong totalRequest();//每分钟通过的请求数long totalPass();//每分钟完成的请求数,即调用了Entry#exit()long tot

#sentinel
微服务组件源码6——Spring Gateway

* Spring WebFlux的定位和SpringMVC一样,不过区别在其处理方法可以使用Flux进行编写,且返回一个发布者Flux/Mono* Spring WebFlux也可以适配@RequestMapping那一套的编写模式,只不过建议基于Flux来编写controller方法WebFlux是兼容Spring MVC 基于@Controller,@RequestMapping等注解的编程开

#gateway#spring
Tomcat源码笔记2——Servlet容器

* 处理http协议的过程- 连接器Connector创建request和response对象连接器调用StandardContext实例的invoke()方法- 接着,StandardContext实例的invoke()方能调用其管道对象的invoke()方法,StandardContext中管道对象的基础阀是StandardContextValve类的实例,因此, StandardContex

#tomcat
微服务组件源码2——Spring Ribbon原理(基于RibbonLoadBalancerClient)

Ribbon 负载组件的内部就是集成了 LoadBalancerClient 负载均衡客户端,所以 Ribbon 负载均衡的原理本质也跟上面介绍的 LoadBalancerClient 原理一致,负载均衡器 Ribbon 默认会通过 Eureka Client 向 Eureka 服务端的服务注册列表中获取服务的信息,并缓存一份在本地 JVM 中,根据缓存的服务注册列表信息,可以通过 LoadBal

#java#ribbon#微服务
微服务组件源码6——Spring Gateway

* Spring WebFlux的定位和SpringMVC一样,不过区别在其处理方法可以使用Flux进行编写,且返回一个发布者Flux/Mono* Spring WebFlux也可以适配@RequestMapping那一套的编写模式,只不过建议基于Flux来编写controller方法WebFlux是兼容Spring MVC 基于@Controller,@RequestMapping等注解的编程开

#gateway#spring
Spring源码笔记5—AnotationConfigServletWebServerApplicationContext(SpringBoot默认容器)

1、继承AbstractApplicationContext,几乎可以把GenericApplicationContext等价于DefaultListableBeanFactory + 上下文刷新等其他功能①该实现内部有一个 DefaultListableBeanFactory 实例,GenericApplicationContext基本就是对DefaultListableBeanFactory

#java#开发语言#spring boot
    共 16 条
  • 1
  • 2
  • 请选择