
9/24/2024 · Danica Fine
What this post added
This post details the internal lifecycle of a Kafka producer request on the broker, covering the stages of socket receive buffer, network threads, request queue, I/O threads, page cache and disk writes (including segment structure and flush configurations), purgatory for replication (and its relation to acks and replica fetchers), response queue, network thread handoff, and socket send buffer. It also enumerates specific configuration parameters and monitoring metrics for each stage, such as socket.receive.buffer.bytes, socket.request.max.bytes, num.network.threads, NetworkProcessorAvgIdlePercent, queued.max.requests, queued.max.request.bytes, RequestQueueSize, RequestQueueTimeMs, num.io.threads, RequestHandlerAvgIdlePercent, log.flush.interval.ms, log.flush.interval.messages, log.segment.bytes, cleanup.policy, LogFlushRateAndTimeMs, LocalTimeMs, default.replication.factor, replication.factor, replica.fetch.wait.max.ms, num.replica.fetchers, RemoteTimeMs, ResponseQueueSize, ResponseQueueTimeMS, and ResponseSendTimeMs.