聊聊AsyncHttpClient的ConnectionSemaphore

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

聊聊AsyncHttpClient的默认配置

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

聊聊nginx的keepalive_time参数

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

聊聊nginx的keepalive相关参数

2023-12-04
阅读 6 分钟
546
默认是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 分钟
241
ThrowableHandlingConverter继承了ClassicConverter,其handlesThrowable方法返回true

聊聊springboot的logging.group

2023-12-02
阅读 10 分钟
150
序本文主要研究一下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 分钟
348
org/springframework/boot/actuate/autoconfigure/metrics/MetricsProperties.java

聊聊logback的addtivity属性

2023-11-30
阅读 5 分钟
318
序本文主要研究一下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 分钟
343
这里在c1的cluster定义了一个distribute_test_all的分布式表,查询本地的distribute_test_local表,而sharding_key采用的是随机的方式,将数据分布到每个节点的本地表

聊聊httpclient的ConnectionHolder

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

聊聊tomcat的keepAlive参数

2023-11-27
阅读 19 分钟
386
序本文主要研究一下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 分钟
276
HttpClientConnectionOperator定义了connect及upgrade方法,它有一个默认的实现类为DefaultHttpClientConnectionOperator

聊聊httpclient的getPoolEntryBlocking

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

聊聊httpclient的staleConnectionCheckEnabled

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

聊聊tomcat的connection-timeout

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

聊聊TraceIdPatternLogbackLayout

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

聊聊logback的ThresholdFilter

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

聊聊logback的LevelFilter

2023-11-20
阅读 2 分钟
249
序本文主要研究一下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 分钟
241
HttpClientBuilder提供了disableConnectionState方法可以设置connectionStateDisabled为true,在该值为true时userTokenHandlerCopy为NoopUserTokenHandler.INSTANCE,而userTokenHandlerCopy是作为创建ClientExecChain(MainClientExec)的参数之一

聊聊httpclient的validateAfterInactivity

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

聊聊logback的EvaluatorFilter

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

聊聊logback的MarkerFilter

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

聊聊logback的MDCFilter

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

聊聊logback的DynamicThresholdFilter

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

聊聊logback的DuplicateMessageFilter

2023-11-13
阅读 4 分钟
204
序本文主要研究一下logback的DuplicateMessageFilterTurboFilterch/qos/logback/classic/turbo/TurboFilter.java {代码...} TurboFilter继承了ContextAwareBase,声明实现LifeCycle接口,它定义了decide方法由子类实现DuplicateMessageFilterch/qos/logback/classic/turbo/DuplicateMessageFilter.java {代码...} Duplic...

聊聊logback的isDebugEnabled

2023-11-12
阅读 4 分钟
295
isDebugEnabled先通过callTurboFilters获取debug级别的FilterReply,若为DENY返回false,若为ACCEPT返回true,若为NEUTRAL则判断effectiveLevelInt是否小于等于DEBUG_INT

聊聊LogbackMDCAdapter

2023-11-11
阅读 9 分钟
360
slf4j定义了MDCAdapter接口,该接口定义了put、get、remove、clear、getCopyOfContextMap、setContextMap、pushByKey、popByKey、getCopyOfDequeByKey、clearDequeByKey方法

聊聊logback的TimeBasedRollingPolicy

2023-11-10
阅读 9 分钟
406
TimeBasedRollingPolicy继承了RollingPolicyBase,它定义了maxHistory、cleanHistoryOnStart、timeBasedFileNamingAndTriggeringPolicy等属性

聊聊logback的FixedWindowRollingPolicy

2023-11-09
阅读 8 分钟
240
RollingPolicy接口定义了rollover、getActiveFileName、getCompressionMode、setParent方法

聊聊logback的ShutdownHook

2023-11-08
阅读 3 分钟
304
序本文主要研究一下logback的ShutdownHookShutdownHookch/qos/logback/core/hook/ShutdownHook.java {代码...} ShutdownHook接口继承了Runnable、ContextAware接口ShutdownHookBasech/qos/logback/core/hook/ShutdownHookBase.java {代码...} ShutdownHookBase继承了ContextAwareBase,声明实现ShutdownHook,它提供了一...