聊聊AsyncHttpClient的IOExceptionFilter

2023-12-13
阅读 6 分钟
234
序本文主要研究一下AsyncHttpClient的IOExceptionFilterIOExceptionFilterorg/asynchttpclient/filter/IOExceptionFilter.java {代码...} IOExceptionFilter接口定义了filter方法,在捕获到IOException的时候执行ResumableIOExceptionFilterorg/asynchttpclient/handler/resumable/ResumableIOExceptionFilter.java {代...

聊聊AsyncHttpClient的RequestFilter

2023-12-12
阅读 6 分钟
225
序本文主要研究一下AsyncHttpClient的RequestFilterRequestFilterorg/asynchttpclient/filter/RequestFilter.java {代码...} RequestFilter定义了filter方法ThrottleRequestFilterorg/asynchttpclient/filter/ThrottleRequestFilter.java {代码...} ThrottleRequestFilter实现了RequestFilter接口,它使用Semaphore来对r...

聊聊AsyncHttpClient的KeepAliveStrategy

2023-12-11
阅读 6 分钟
254
序本文主要研究一下AsyncHttpClient的KeepAliveStrategyKeepAliveStrategyorg/asynchttpclient/channel/KeepAliveStrategy.java {代码...} KeepAliveStrategy接口定义了keepAlive方法用于决定是否对该connection进行keep aliveDefaultKeepAliveStrategyorg/asynchttpclient/channel/DefaultKeepAliveStrategy.java {代码...

聊聊AsyncHttpClient的exception

2023-12-10
阅读 5 分钟
294
序本文主要研究一下AsyncHttpClient的exceptionChannelClosedExceptionorg/asynchttpclient/exception/ChannelClosedException.java {代码...} ChannelClosedException用于表示Channel closed的异常handleUnexpectedClosedChannelorg/asynchttpclient/netty/request/NettyRequestSender.java {代码...} NettyRequestSend...

聊聊spring.mvc.servlet.load-on-startup

2023-12-09
阅读 8 分钟
396
org/springframework/boot/autoconfigure/web/servlet/WebMvcProperties.java

聊聊AsyncHttpClient的ChannelPool

2023-12-08
阅读 13 分钟
189
ChannelPool定义了offer、poll、removeAll、isOpen、destroy、flushPartitions、getIdleChannelCountPerHost方法,它有两个实现类,分别是NoopChannelPool及DefaultChannelPool

聊聊AsyncHttpClient的ConnectionSemaphore

2023-12-07
阅读 14 分钟
267
ConnectionSemaphore主要用于控制连接的maxConnections及maxConnectionsPerHost;它定义了freeChannels表示可用连接的信号量,定义了freeChannelsPerHost维护每个host的可用连接新用量,类型是NonBlockingSemaphoreLike;它提供了tryAcquireGlobal用于获取全局的空闲连接,tryAcquirePerHost用于获取指定host的空闲连接...

聊聊AsyncHttpClient的默认配置

2023-12-06
阅读 10 分钟
503
AsyncHttpClientConfig接口定义了一系列获取配置的接口,比如getMaxConnections、getConnectTimeout、getReadTimeout、getPooledConnectionIdleTimeout等

聊聊nginx的keepalive_time参数

2023-12-05
阅读 9 分钟
547
nginx的1.19.10版本新增了keepalive_time参数,用于限制一个keep-alive连接处理请求的最长时间。当达到这个时间后,连接会在后续请求处理完成后关闭。

聊聊nginx的keepalive相关参数

2023-12-04
阅读 6 分钟
947
默认是75s,客户端的一个keep-alive连接在服务端保持open的时间,为0表示禁用keep-alive,可选指定header_timeout,若有指定则response header会有Keep-Alive: timeout=time,该header能被Mozilla和Konqueror浏览器识别,MSIE浏览器大概在60s会关闭keep-alive连接

聊聊logback的ThrowableProxyConverter

2023-12-03
阅读 8 分钟
342
ThrowableHandlingConverter继承了ClassicConverter,其handlesThrowable方法返回true

聊聊springboot的logging.group

2023-12-02
阅读 10 分钟
264
序本文主要研究一下springboot的logging.groupLoggersEndpointorg/springframework/boot/actuate/logging/LoggersEndpoint.java {代码...} LoggersEndpoint提供了loggers、loggerLevels、configureLogLevel方法LoggerGroupsorg/springframework/boot/logging/LoggerGroups.java {代码...} LoggerGroups实现了Iterable接...

聊聊springboot的http.server.requests

2023-12-01
阅读 25 分钟
553
org/springframework/boot/actuate/autoconfigure/metrics/MetricsProperties.java

聊聊logback的addtivity属性

2023-11-30
阅读 5 分钟
463
序本文主要研究一下logback的addtivity属性LoggerModelch/qos/logback/classic/model/LoggerModel.java {代码...} LoggerModel定义了additivity属性LoggerActionch/qos/logback/classic/joran/action/LoggerAction.java {代码...} LoggerAction的buildCurrentModel方法会读取additivity属性,然后设置到loggerModelLogge...

聊聊clickhouse分布式表的操作

2023-11-29
阅读 2 分钟
671
这里在c1的cluster定义了一个distribute_test_all的分布式表,查询本地的distribute_test_local表,而sharding_key采用的是随机的方式,将数据分布到每个节点的本地表

聊聊httpclient的ConnectionHolder

2023-11-28
阅读 9 分钟
373
序本文主要研究一下httpclient的ConnectionHolderConnectionReleaseTriggerorg/apache/http/conn/ConnectionReleaseTrigger.java {代码...} ConnectionReleaseTrigger定义了releaseConnection、abortConnection方法ConnectionHolderorg/apache/http/impl/execchain/ConnectionHolder.java {代码...} ConnectionHolder实...

聊聊tomcat的keepAlive参数

2023-11-27
阅读 19 分钟
588
序本文主要研究一下tomcat的keepAlive参数maxKeepAliveRequestsorg/apache/tomcat/util/net/AbstractEndpoint.java {代码...} AbstractEndpoint定义了maxKeepAliveRequests属性,默认为100Http11Processororg/apache/coyote/http11/Http11Processor.java {代码...} Http11Processor的service方法会从protocol获取maxKeep...

聊聊httpclient的connect

2023-11-26
阅读 8 分钟
352
HttpClientConnectionOperator定义了connect及upgrade方法,它有一个默认的实现类为DefaultHttpClientConnectionOperator

聊聊httpclient的getPoolEntryBlocking

2023-11-25
阅读 9 分钟
315
AbstractConnPool提供了getPoolEntryBlocking,lease内部就是通过这个方法来获取连接的。它主要是通过pool.getFree获取空闲连接,然后进行过期判断,再判断是否close,如果已经close则从available中移除,获取成功的话则从available移除,添加到leased然后返回。如果获取不到则先判断连接是否超出maxPerRoute,超出则先...

聊聊httpclient的staleConnectionCheckEnabled

2023-11-24
阅读 15 分钟
422
RequestConfig定义了staleConnectionCheckEnabled属性,在4.4版本废弃了,默认为false,替换设置是org.apache.http.impl.conn.PoolingHttpClientConnectionManager.setValidateAfterInactivity(int);Builder方法也提供了setStaleConnectionCheckEnabled方法

聊聊tomcat的connection-timeout

2023-11-23
阅读 7 分钟
606
springboot的ServerProperties.Tomcat定义了connectionTimeout属性,用于指定接受连接之后等待uri的时间

聊聊TraceIdPatternLogbackLayout

2023-11-22
阅读 12 分钟
481
org/apache/skywalking/apm/toolkit/log/logback/v1/x/TraceIdPatternLogbackLayout.class

聊聊logback的ThresholdFilter

2023-11-21
阅读 4 分钟
329
ThresholdFilter继承了Filter,其decide方法从ILoggingEvent获取level,若该level大于等于指定的level则返回NEUTRAL,否则返回DENY

聊聊logback的LevelFilter

2023-11-20
阅读 2 分钟
308
序本文主要研究一下logback的LevelFilterAbstractMatcherFilterch/qos/logback/core/filter/AbstractMatcherFilter.java {代码...} AbstractMatcherFilter继承了Filter,它定义了onMatch及onMismatch属性LevelFilterch/qos/logback/classic/filter/LevelFilter.java {代码...} LevelFilter继承了AbstractMatcherFilter,...

聊聊httpclient的disableConnectionState

2023-11-19
阅读 5 分钟
282
HttpClientBuilder提供了disableConnectionState方法可以设置connectionStateDisabled为true,在该值为true时userTokenHandlerCopy为NoopUserTokenHandler.INSTANCE,而userTokenHandlerCopy是作为创建ClientExecChain(MainClientExec)的参数之一

聊聊httpclient的validateAfterInactivity

2023-11-18
阅读 9 分钟
570
AbstractConnPool定义了validateAfterInactivity属性,与defaultMaxPerRoute、maxTotal不同,该属性没有在构造器参数中,而是提供了setter来设置

聊聊logback的EvaluatorFilter

2023-11-17
阅读 7 分钟
554
EvaluatorFilter继承了AbstractMatcherFilter,其decide方法在evaluator.evaluate(event)为true时返回onMatch,否则返回onMismatch,异常的话返回NEUTRAL

聊聊logback的MarkerFilter

2023-11-16
阅读 11 分钟
452
MarkerFilter定义了markerToMatch属性,其decide方法对于传入的marker为null返回onMismatch,对于包含markerToMatch的返回onMatch,否则返回onMismatch

聊聊logback的MDCFilter

2023-11-15
阅读 3 分钟
412
MatchingFilter继承了TurboFilter,它提供了setOnMatch及setOnMismatch方法,它们在action为NEUTRAL、ACCEPT、DENY时设置对应的onMatch、onMismatch

聊聊logback的DynamicThresholdFilter

2023-11-14
阅读 3 分钟
316
DynamicThresholdFilter继承了TurboFilter,它定义了valueLevelMap、defaultThreshold为ERROR,onHigherOrEqual为NEUTRAL,onLower为DENY