Armeria v0.93.0 Release Notes
Release Date: 2019-09-25 // over 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
You can now create a
Sampler
from a specification string such asrandom=0.1
andrate-limited=10
. #2108- This is going to be useful when you want to make the sampling policy of
Brave{Client,Server}
orLogging{Client,Server}
configurable from external sources such as a configuration file or a system property.
Sampler<Object> randomSampler = Sampler.of("random=0.1");Sampler<Object> rateLimitedSampler = Sampler.of("rate-limited=10");Sampler<Object> alwaysSampler = Sampler.of("always");Sampler<Object> neverSampler = Sampler.of("never");
- This is going to be useful when you want to make the sampling policy of
๐ You can now specify the
Sampler
specification string in thecom.linecorp.armeria.verboseExceptions
system property. #2105 #2111- From this release, the default value of this property is
rate-limited=10
which means the stack trace of the exceptions will be recorded at the maximum rate of 10 exceptions/sec. Previously, the default value of this property wasfalse
, which eliminates all stack traces, which gave our users a hard time figuring out why.
- From this release, the default value of this property is
You can now specify a common path prefix using
@PathPrefix
annotation in annotated services. #2031 #2099@PathPrefix("/users")public class MyUserService { @Get("/{id}") // Mapped to '/users/{id}'@ProducesJsonpublic User getUser(@Param int id) { ... } ...}Server server = new ServerBuilder() .annotatedService(new MyUserService()) .build();
๐ Bug fixes
- ๐ Fixed a memory leak in
HealthCheckService
. #2110 - Prometheus and Dropwizard Metrics are now optional dependencies in
armeria-spring-boot-*
. #2106 #2107 armeria-spring-boot-actuator-autoconfigure
does not refuse to start anymore whenHealthStatusHttpMapper
is missing. #2104
๐ฅ Breaking changes
- ๐
Flags.verboseExceptions()
has been replaced withverboseExceptionSampler()
andverboseExceptionSamplerSpec()
. #2111 - ๐
Exceptions.isVerbose()
, which was deprecated previously, has been removed. #2111 - โฌ๏ธ You may need to add
io.micrometer:micrometer-registry-prometheus
orio.dropwizard.metrics:metrics-json
after upgrading if you were depending on them transitively. #2107
Dependencies
- Netty 4.1.41 -> 4.1.42
- Netty TCNative BoringSSL 2.0.25 -> 2.0.26
- Project Reactor 3.2.12 -> 3.3.0
- Prometheus 0.6.0 -> 0.7.0
- Retrofit 2.6.1 -> 2.6.2
Thank you
๐ This release was possible thanks to the following contributors who shared their brilliant ideas and awesome pull requests: