Finagle 6.31.0
·
4017 commits
to develop
since this release
New Features
- finagle-core:
c.t.f.Server
now has aserveAndAnnounce
method that accepts aSocketAddress
as an address.RB_ID=758862
- finagle-core:
c.t.f.service.Retries
now supports adding delay between each automatic retry.
This is configured via theRetries.Budget
.RB_ID=768883
- finagle-core: FailureAccrualFactory now uses a FailureAccrualPolicy to determine when to
mark an endpoint dead. The default policy, FailureAccrualPolicy.consecutiveFailures(),
mimicks existing functionality, and FailureAccrualPolicy.successRate() operates on the
exponentially weighted average success rate over a window of requests.RB_ID=756921
- finagle-core: Introduce
c.t.f.transport.Transport.Options
to configure transport-level options
(i.e., socket optionsTCP_NODELAY
andSO_REUSEADDR
).RB_ID=773824
- finagle-http:
c.t.f.http.exp.Multipart
now supports both in-memory and on-disk file uploads.
RB_ID=RB_ID=769889
- finagle-netty4: Hello World. Introduce a
Listener
for Netty 4.1. This is still considered beta.
RB_ID=718688
- finagle-netty4: Introduce
ChannelTransport
for Netty 4.1.RB_ID=763435
- finagle-thrift:
c.t.f.ThriftRichClient
implementations ofnewServiceIface
method that accept alabel
argument to pass to theScopedStats
instance.RB_ID=760157
- finagle-stats: Added
c.t.f.stats
now has astatsFilterFile
flag which will read a blacklist
of regex, newline-separated values. It will be used along with thestatsFilter
flag for stats
filtering.RB_ID=764914
Deprecations
- finagle-core: the #channelFactory method of
c.t.f.builder.ServerBuilder
has been deprecated
in favor of thec.t.f.netty3.numWorkers
flag.RB_ID=718688
Runtime Behavior Changes
- finagle-core: The behavior for
c.t.f.util.DefaultMonitor
has changed such that
unhandled exceptions are propagated toc.t.u.RootMonitor
except for
c.t.f.Failures
with a logLevel
below INFO.RB_ID=758056
- finagle-core: The metrics for requeues
requeue/requeues
,requeue/budget
and
requeue/budget_exhausted
have moved under retries. They are nowretries/requeues
,
retries/budget
andretries/budget_exhausted
.RB_ID=760213
- finagle-core:
c.t.f.service.RetryFilter
andc.t.f.service.RetryExceptionsFilter
now default to using aRetryBudget
to mitigate retry amplification on downstream
services. The previous behavior can be achieved by explicitly passing in
RetryBudget.Infinite
.RB_ID=766302
- finagle-core:
c.t.f.factory.TrafficDistributor
now suppresses changes when a bound
address is updated from a valid set to an error. Instead, it continues using stale
data until it gets a successful update. - finagle-http: Unhandled exceptions from user defined HTTP services are now converted
into very basic 500 responses so clients talking to those services see standard HTTP
responses instead of a dropped connection.RB_ID=755846
- finagle-memcached: Moved metrics from underlying
KetamaPartitionedClient
for Memcached clients
to share the same scope of the underlying finagle client.RB_ID=771691
- finagle-mux:
com.twitter.finagle.mux.ThresholdFailureDetector
is turned on by
default.RB_ID=756213
- finagle-serversets: The
c.t.f.serverset2.Zk2Resolver
now surfacesAddr.Pending
when it detects that its underlying ZooKeeper client is unhealthy. Unhealthy is defined
as non-connected for greater than its 'unhealthyWindow' (which defaults to 5 minutes).
RB_ID=760771
- finagle-serversets: The
c.t.f.serverset2.ZkSession
now uses an unbounded semaphore to
limit to 100 outstanding zookeeper requests at any one moment.RB_ID=771399
Breaking API Changes
- finagle-core:
BackupRequestLost
is no longer itself anException
. Use
BackupRequestLost.Exception
in its place.RB_ID=758056
- finagle-core: Replaced
c.t.f.builder.ClientConfig.Retries
with
c.t.f.service.Retries.Policy
.RB_ID=760213
- finagle-core: A deprecated
c.t.f.CancelledReadException
has been removed.
RB=763435
- finagle-http:
c.t.f.http.exp.Multipart.decodeNonChunked
has been removed from
the public API. Usec.t.f.http.Request.multipart
instead. Also
c.t.f.http.exp.Multipart.FileUpload
is no longer a case class, but base trait
forMultipart.InMemoryFileUpload
andMultipart.OnDiskFileUpload
.RB_ID=769889
- finagle-mux:
c.t.f.FailureDetector.apply
method is changed to private scope,
to reduce API surface area. UsingFailureDetector.Config
is enough to config
session based failure detection behavior.RB_ID=756833
- finagle-mux:
closeThreshold
inc.t.f.mux.FailureDetector.ThresholdConfig
is
changed tocloseTimeout
, from an integer that was used as a multiplier to time
duration. This makes it easier to config.RB_ID=759406
Bug Fixes
- finagle-thrift:
c.t.f.ThriftRichClient
scoped stats label is now threaded
properly throughnewServiceIface
RB_ID=760157