Skip to content

Question about Circuit Breaking Logic in linkerd-proxy: Attempts to Send Requests to Circuit-Broken Targets #12350

Answered by olix0r
YHM404 asked this question in Q&A
Discussion options

You must be logged in to vote

You're missing an important aspect of the Service contract: readiness.

The P2C balancer uses a ReadyCache to hold its inner endpoint services. The ReadyCache is responsible for only exposing an endpoint to the balancer when its Service::poll_ready returns Poll::Ready(Ok(())).

The circuit breaking behavior occurs within an individual endpoint service. When the circuit breaker is tripped, the endpoint's Service::poll_ready returns Poll::Pending until requests are allowed again, and so the balancer simply does not consider it for requests until the readiness changes.

Replies: 1 comment 1 reply

Comment options

You must be logged in to vote
1 reply
@YHM404
Comment options

Answer selected by YHM404
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Category
Q&A
2 participants