armeria-0.99.3
💮 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/1request 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.defaultPingIntervalMillissystem property - or calling
ClientFactoryBuilder.pingIntervalMillis().
- specifying
- This feature is disabled by default and you can enable it by:
📈 Improvements
DocServicedebug form now prettifies any JSON responses. #2635
🛠️ Bug fixes
grpc-timeoutgRPC client header is generated correctly now. #2643QueryParams.toQueryString()does not raise an exception anymore. #2644HealthCheckedEndpointGroupdoes not raise aConcurrentModificationExceptionanymore. #2647- Thrift TEXT protocol does not fail to handle a recursive union struct anymore. #2654
MoreNamingConventions.prometheus()now appends thesecondssuffix forLongTaskTimercorrectly, when using legacy meter names. #2646- Fixed a bug where
DocServicesends a request with a wrong HTTP method if a service specification contains duplicate methods. #2657
☢️ Breaking changes
com.linecorp.armeria.defaultHttp2PingTimeoutMillisflag has been replaced withcom.linecorp.armeria.defaultPintIntervalMillis.com.linecorp.armeria.defaultUseHttp2PingWhenNoActiveStreamsflag 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.1when 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: