聊聊logback的AsyncAppender

2023-10-28
阅读 8 分钟
147
AsyncAppender继承了AsyncAppenderBase,它新增了includeCallerData配置,另外覆盖了isDiscardable、preprocess方法,isDiscardable针对TRACE、DEBUG的级别返回true,INFO返回false;preprocess则判断是否includeCallerData,是的话则执行eventObject.getCallerData()

聊聊springboot的TomcatMetricsBinder

2023-10-27
阅读 10 分钟
315
org/springframework/boot/actuate/autoconfigure/metrics/web/tomcat/TomcatMetricsAutoConfiguration.java

聊聊HttpClient的close

2023-10-26
阅读 6 分钟
202
序本文主要研究一下HttpClient的closeCloseableHttpClientorg/apache/http/impl/client/CloseableHttpClient.java {代码...} CloseableHttpClient声明实现HttpClient, Closeable接口InternalHttpClientorg/apache/http/impl/client/InternalHttpClient.java {代码...} InternalHttpClient继承了CloseableHttpClient,其...

聊聊jedis连接池的预热

2023-10-25
阅读 2 分钟
273
这里取了maxIdle配置来进行预热,通过DirectFieldAccessor来获取jedisConnectionFactory对象的pool

聊聊springboot的liveness及readiness

2023-10-24
阅读 14 分钟
230
org/springframework/boot/autoconfigure/availability/ApplicationAvailabilityAutoConfiguration.java

聊聊线程池的预热

2023-10-23
阅读 1 分钟
367
序本文主要研究一下线程池的预热prestartCoreThreadjava/util/concurrent/ThreadPoolExecutor.java {代码...} ThreadPoolExecutor定义了prestartCoreThread,用于启动一个核心线程prestartAllCoreThreadsjava/util/concurrent/ThreadPoolExecutor.java {代码...} prestartAllCoreThreads用于启动所有的核心线程小结Threa...

聊聊KafkaListener的实现机制

2023-10-22
阅读 25 分钟
433
org/springframework/kafka/annotation/KafkaListenerAnnotationBeanPostProcessor.java

聊聊RocketMQMessageListener的实现机制

2023-10-21
阅读 21 分钟
534
实现了RocketMQListener接口的类,再配合@RocketMQMessageListener注解就可以实现对rocketmq消息的消费

聊聊DisposableBeanAdapter

2023-10-20
阅读 9 分钟
248
spring-beans/src/main/java/org/springframework/beans/factory/DisposableBean.java

聊聊InitDestroyAnnotationBeanPostProcessor

2023-10-19
阅读 10 分钟
163
spring-beans/src/main/java/org/springframework/beans/factory/annotation/InitDestroyAnnotationBeanPostProcessor.java

聊聊HttpClient的RedirectStrategy

2023-10-18
阅读 10 分钟
258
RedirectStrategy接口定义了isRedirected方法用于判断是否需要redirect,还定义了getRedirect方法用于返回redirect的目标地址

聊聊HttpClient的DnsResolver

2023-10-17
阅读 7 分钟
314
序本文主要研究一下HttpClient的DnsResolverDnsResolverorg/apache/http/conn/DnsResolver.java {代码...} DnsResolver定义了resolve方法,可用于替换OS提供的DNS lookupInMemoryDnsResolverorg/apache/http/impl/conn/InMemoryDnsResolver.java {代码...} InMemoryDnsResolver实现了DnsResolver接口,它用一个Concurren...

聊聊HttpClient的HttpRoutePlanner

2023-10-16
阅读 5 分钟
256
序本文主要研究一下HttpClient的HttpRoutePlannerHttpRoutePlannerorg/apache/http/conn/routing/HttpRoutePlanner.java {代码...} HttpRoutePlanner接口定义了determineRoute方法,用于决定该请求的目标routeDefaultRoutePlannerorg/apache/http/impl/conn/DefaultRoutePlanner.java {代码...} DefaultRoutePlanner实现...

聊聊HttpClient的BackoffManager

2023-10-15
阅读 6 分钟
173
BackoffManager接口主要用于根据connection的情况来动态调整连接池的connection大小,它定义了backOff方法用于缩小连接数,probe方法用于扩大连接数

聊聊HttpClient的ConnectionBackoffStrategy

2023-10-14
阅读 5 分钟
240
序本文主要研究一下HttpClient的ConnectionBackoffStrategyConnectionBackoffStrategyorg/apache/http/client/ConnectionBackoffStrategy.java {代码...} ConnectionBackoffStrategy定义了shouldBackoff方法,它根据异常或者response来进行判断NullBackoffStrategyorg/apache/http/impl/client/NullBackoffStrategy.java...

聊聊HttpClient的ServiceUnavailableRetryStrategy

2023-10-13
阅读 5 分钟
174
ServiceUnavailableRetryStrategy定义了retryRequest方法用于返回是否该重试,getRetryInterval返回自动重试的间隔

聊聊HttpClient的重试机制

2023-10-12
阅读 12 分钟
464
HttpRequestRetryHandler接口定义了retryRequest方法,它接收IOException、executionCount及context,然后判断是否可以重试

聊聊HttpClient的NoHttpResponseException

2023-10-11
阅读 3 分钟
184
序本文主要研究一下HttpClient的NoHttpResponseExceptionNoHttpResponseExceptionorg/apache/http/NoHttpResponseException.java {代码...} NoHttpResponseException继承了IOException,用于表示目标服务器没有返回一个正常的http responseDefaultHttpResponseParserorg/apache/http/impl/conn/DefaultHttpResponseParse...

聊聊HttpClient的KeepAlive

2023-10-10
阅读 10 分钟
336
ConnectionKeepAliveStrategy接口定义了getKeepAliveDuration方法,用于返回该connection空间多久以内被复用是安全的

聊聊HttpClient的ResponseHandler

2023-10-09
阅读 6 分钟
179
序本文主要研究一下HttpClient的ResponseHandlerResponseHandlerorg/apache/http/client/ResponseHandler.java {代码...} ResponseHandler定义了handleResponse方法,用于解析HttpResponse到泛型TAbstractResponseHandlerorg/apache/http/impl/client/AbstractResponseHandler.java {代码...} AbstractResponseHandler声...

聊聊RestTemplate对HttpClient的适配

2023-10-08
阅读 11 分钟
190
org/springframework/http/client/HttpComponentsClientHttpRequestFactory.java

聊聊httpclient的监控

2023-10-07
阅读 11 分钟
242
micrometer-core-1.3.0-sources.jar!/io/micrometer/core/instrument/binder/httpcomponents/MicrometerHttpRequestExecutor.java

聊聊httpclient的evict操作

2023-10-06
阅读 9 分钟
356
HttpClientBuilder提供了evictExpiredConnections方法,该方法会设置evictExpiredConnections为true

聊聊httpclient的CPool

2023-10-05
阅读 14 分钟
263
序本文主要研究一下httpclient的CPoolConnPoolorg/apache/http/pool/ConnPool.java {代码...} ConnPool定义了lease及release方法,其中定义了两个泛型,T表示route,E表示poolEntryConnPoolControl {代码...} ConnPoolControl接口定义了设置和访问maxTotal、defaultMaxPerRoute及PoolStats的方法AbstractConnPoolorg/apa...

聊聊HttpClientBuilder

2023-10-04
阅读 16 分钟
212
httpclient-4.5.10-sources.jar!/org/apache/http/impl/client/HttpClientBuilder.java

聊聊HttpComponentsHttpInvokerRequestExecutor

2023-10-03
阅读 6 分钟
338
org/springframework/remoting/httpinvoker/HttpComponentsHttpInvokerRequestExecutor.java

聊聊druid的源码的几个疑问

2023-10-02
阅读 4 分钟
239
druid-1.2.11-sources.jar!/com/alibaba/druid/pool/DruidPooledConnection.java

聊聊druid的keepalive机制

2023-10-01
阅读 18 分钟
249
DruidDataSource的init方法在keepAlive的时候触发创建连接,当createScheduler不为null时(默认为null)执行submitCreateTask,否则执行emptySignal

聊聊druid的DestroyConnectionThread

2023-09-30
阅读 8 分钟
173
DruidDataSource的init方法会执行createAndStartDestroyThread;而createAndStartDestroyThread在destroyScheduler不为null的时候会定时(timeBetweenEvictionRunsMillis)调度destroyTask,不过destroyScheduler默认为null;同时它还启动了DestroyConnectionThread

聊聊druid连接池的监控

2023-09-29
阅读 11 分钟
264
序本文主要研究一下druid连接池的监控initcom/alibaba/druid/pool/DruidDataSource.java {代码...} DruidDataSource的init方法会执行registerMbeanregisterMbeancom/alibaba/druid/pool/DruidDataSource.java {代码...} registerMbean会执行DruidDataSourceStatManager.addDataSource(DruidDataSource.this, DruidDataSo...