Armeria v0.99.3 Release Notes
Release Date: 2020-04-14 // about 4 years ago-
🍱 💮 What is Armeria?
Armeria is an open-source asynchronous HTTP/2 RPC/REST client/server library built on top of Java 8, Netty, Thrift and gRPC. Its primary goal is to help engineers build high-performance asynchronous microservices that use HTTP/2 as a session layer protocol. Visit the official web site and follow @armeria_project to check out many cool features you can't find in the official gRPC/Thrift implementation or other microservice frameworks.
🍱 🌟 New features
- ➕ Added
RetryStrategy.onException()
#2652 - Armeria clients can now send an
OPTIONS * HTTP/1
request as an alternative to an HTTP/2 PING frame. #2636- This feature is disabled by default and you can enable it by:
- specifying
com.linecorp.armeria.defaultPingIntervalMillis
system property - or calling
ClientFactoryBuilder.pingIntervalMillis()
.
📈 Improvements
- 📄
DocService
debug form now prettifies any JSON responses. #2635
🛠️ Bug fixes
- ⏱
grpc-timeout
gRPC client header is generated correctly now. #2643 - 👻
QueryParams.toQueryString()
does not raise an exception anymore. #2644 HealthCheckedEndpointGroup
does not raise aConcurrentModificationException
anymore. #2647- Thrift TEXT protocol does not fail to handle a recursive union struct anymore. #2654
MoreNamingConventions.prometheus()
now appends theseconds
suffix forLongTaskTimer
correctly, when using legacy meter names. #2646- 🛠 Fixed a bug where
DocService
sends a request with a wrong HTTP method if a service specification contains duplicate methods. #2657
🍱 ☢️ Breaking changes
- 0️⃣
com.linecorp.armeria.defaultHttp2PingTimeoutMillis
flag has been replaced withcom.linecorp.armeria.defaultPintIntervalMillis
. - 🚚
com.linecorp.armeria.defaultUseHttp2PingWhenNoActiveStreams
flag has been removed without a replacement, because:- HTTP/2 can send PING frame regardless of whether there is an active stream or not.
- HTTP/1 can only send
OPTIONS * HTTP/1.1
when there is no active stream.
ClientFactoryBuilder.http2PingTimeoutMillis()
has been replaced withClientFactoryBuilder.pingIntervalMillis()
.ServerBuilder.http2PingTimeoutMillis()
has been replaced withServerBuilder.pingIntervalMillis()
.
🍱 ⛓ Dependencies
- Brave 5.10.2 → 5.11.2
🍱 🙇 Thank you
🚀 This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests:
- ➕ Added