自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 SpringBoot外部化配置

public ConfigurableApplicationContext run(String... args) { StopWatch stopWatch = new StopWatch(); stopWatch.start(); ConfigurableApplicationContext context = null; ArrayList exceptionReporters = new ArrayList(); this.configureHeadless.

2021-03-03 08:47:42 375 1

原创 Feign请求过程的处理

上文说明了FeignClient接口在Spring容器中都是生成关联FeignInvocationHandler的代理类,所以在调用FeignClient接口的方法时,都会执行FeignInvocationHandler.invoke方法,FeignClient的接口方法的信息都被解析封装在SynchronousMethodHandler中,并以FeignClient接口的Method为key,SynchronousMethodHandler为value,保存在dispatch变量的Map结构中。在Feig

2020-09-19 17:44:34 1014

原创 ConfigurationClassParser

在ConfigurationClassParser.parse解析完之后,调用deferredImportSelectorHandler.process()对ConfigurationClassParser在执行parse方法完成对Component,ComponentScans等标注类扫描之后,会调用ConfigurationClassParser.DeferredImportSelectorHandler.process方法。获得所有自动装配的配置类之后,通过条件过滤,将不符合配置条件的类排除掉。

2024-08-02 22:40:05 690

原创 Springboot Tomcat启动

SpringApplication对象创建时,在构造函数中调用WebApplicationType.deduceFromClasspath方法,检查环境中是否加载reactive.DispatcherHandler、servlet.DispatcherServlet、servlet.ServletContainer、servlet.Servlet、context.ConfigurableWebApplicationContext等Java类。

2024-08-02 22:39:51 707

原创 Springboot

如果beanFactory没有注册org.springframework.context.annotation.internalConfigurationAnnotationProcessor,则注册ConfigurationClassPostProcessor,在AnnotatedBeanDefinitionReader的构造函数中,通过AnnotationConfigUtils.registerAnnotationConfigProcessors注册AnnotationConfigProcessor。

2024-08-02 22:39:15 416

原创 docker命令笔记

1:搜索docker镜像docker search (比如搜索tomcat:docker searchtomcat)2:image(镜像)相关命令2.1拉去指定版本的imagedocker pulldocker pull tomcat:8-jre8 (拉去指定版本的image)2.2查看本地image列表docker imagesdocker image ls2.3删除imagedocker image rm imageiddocker rmi -f i...

2021-11-20 19:43:40 817

原创 docker安装

1:如果安装了docker,可以先卸载yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-enginerm -rf /etc/systemd/system/docker.service.drm -rf /var/lib/do

2021-11-20 17:21:36 133

原创 k8s安装

1、查看系统信息:lsb_release -a2、系统和软件配置文件更新:yum -y updateyum install -y conntrack ipvsadm ipset jq sysstat curl iptables libseccomp3、安装docker:3.1、安装必要的依赖:sudo yum install -y yum-utils \device-mapper-persistent-data \lvm23.2、设置docker仓库:sudo yum-config-

2021-11-06 14:46:17 608

原创 Nacos配置的自动刷新

public NacosConfigService(Properties properties) throws NacosException { String encodeTmp = properties.getProperty("encode"); if(StringUtils.isBlank(encodeTmp)) { this.encode = "UTF-8"; } else { this.encode = encodeTmp.trim();..

2021-03-25 21:16:20 1880

原创 Nacos配置文件的加载

SpringBoot启动时,初始化完成运行环境信息准备之后,会调用SpringApplication.prepareContext方法开始准备上下文,protected void applyInitializers(ConfigurableApplicationContext context) { //获取所有实现了ApplicationContextInitializer的类,主要看PropertySourceBootstrapConfiguration Iterator var2 .

2021-03-18 20:57:15 2414

原创 sentinel滑动窗口

qq

2021-01-04 21:49:27 171

原创 Sentinel的流控效果

Sentinel的流控效果有四种类型,都是TrafficShapingController的实现类,分别是DefaultController(默认策略,直接拒绝),WarmUpController(预热启动),RateLimiterController(排队等待),WarmUpRateLimiterController(预热排队等待)。DefaultController.canPasspublic boolean canPass(Node node, int acquireCount, b.

2020-12-25 21:55:38 617

原创 Hystrix熔断

首先查看EnableCircuitBreaker注解,通过Import注解导入了EnableCircuitBreakerImportSelector(SpringFactoryImportSelector的子类,实现了ImportSelector接口),当Spring容器启动时,会调用SpringFactoryImportSelector.selectImports方法将需要注册的Bean解析出来(当spring.cloud.circuit.breaker.enabled配置的值为false时会放弃解析

2020-11-29 21:39:49 201

原创 Gateway实现原理笔记

14

2020-11-29 21:30:30 1666

原创 Feign代理类的生成过程

我们从下面这个注解进行切入,这个注解开启了FeignClient的解析过程@Retention(RetentionPolicy.RUNTIME)@Target({ElementType.TYPE})@Documented@Import({FeignClientsRegistrar.class})public @interface EnableFeignClients { String[] value() default {}; String[] basePackages()

2020-09-14 20:57:56 827

原创 Ribbon ILoadBalancer 负载均衡源码分析

在执行LoadBalancerInterceptor.intercept拦截器方法的时候,会调用LoadBalancerClient.execute方法,执行具体的请求逻辑,public <T> T execute(String serviceId, LoadBalancerRequest<T> request, Object hint) throws IOException { ILoadBalancer loadBalancer = this.getLoadBala

2020-08-14 08:27:11 398

原创 Ribbon改写请求uri的源码分析

进入RestTemplate的execute方法,其调用了自身的doExecute方法,在doExecute方法中通过createRequest方法创建了ClientHttpRequest对象,通过类名称,我们就可以知道这是一个发起http请求的封装类。那么在createRequest方法中RestTemplate做了哪些事情?@Nullablepublic <T> T execute(String url, HttpMethod method, @Nullable RequestCal

2020-08-01 22:58:36 453

原创 Ribbon均衡算法

Ribbon的负载均衡算法的类的集成关系如下其中:1、RetryRule: 在一个2配置时间段内当选择server不成功,则一直尝试使用subRule的方式选择一个可用的server2、RoundRobinRule: 默认轮询的方式3、WeightedResponseTimeRule: 根据响应时间来分配权重的方式,响应的越快,分配的值越大4、AvailabilityFilteringRule: 过滤掉那些因为一直连接失败的被标记为circuit tripped的后端server,.

2020-07-26 14:37:13 259

原创 ArrayList删除元素总结

ArrayList删除元素的简单总结在工作中经常会根据根据某个条件来对ArrayList做删除操作,以下来做个简单的总结:首先获取到了一个存放String类型的ArrayList实例,希望删除元素值为&amp;quot;张&amp;quot;的元素,运用了以下几种方法(错误的/正确的)1:如removeA所示,使用简单for循环遍历listA,若遍历出的元素值为&amp;quot;张&amp;quot;,则调用listA的remove方法,将其从list中删除...

2018-10-11 15:34:55 2805

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除