Releases: simplesurance/grpcconsulresolver
Releases · simplesurance/grpcconsulresolver
v1.5.1
v1.5.0
What's Changed
- The resolver now retries with an increasing delay (max. 5.5s) when querying
consul fails. Previously it relied on grpc-go to handle retries, but grpc-go
does not trigger retries anymore since
grpc/grpc-go@1c598a1. - When the same error occurs consecutively it is now reported to ClientConn only once.
- The minimum required Go version increased to 1.22.8.
- New stdlib functionality of Go 1.22 is utilized.
- Some spelling mistakes in the godoc and in comments are fixed.
Full Changelog: v1.4.0...v1.5.0
v1.4.0
What's Changed
- minimum required grpc-go version increased to 1.42.0
- fix: resolver options specified in the target URL query strings are ignored when using grpc-go >=1.42.0 ((thanks to @mihaivint)
- the Consul token can now be specified via the query-string option
token
in the target URL (thanks to @mihaivint) - scheme can be configured via the
CONSUL_HTTP_SSL
environment variable - the wait time for consul blocking queries is increased from 5m to 10m, this reduces the amount of consul API-requests and their unnecessary processing if service entries did not change
- consul returning a smaller WaitIndex then it was specified in the query is now correctly handled, by restarting the blocking query loop with a WaitIndex of 0 (as recommended in https://developer.hashicorp.com/consul/api-docs/features/blocking)
- improved package godoc and README documentation
Full Changelog: v1.3.0...v1.4.0
v1.3.0
What's Changed
- grpc-go dependency updated to version 1.38.0
- since grpc-go 1.38.0
ClientConn.UpdateState
returns an error, grpcconsulresolver now retries polling consul for changes and callingUpdateState
again if it happens
Full Changelog: v1.2.2...v1.3.0
v1.2.2
Bugfixes
- grpc calls were blocking forever when service entry does not exist in consul
When consul has no entry for a service name the resolver now reports an empty set of addresses to the ClientCon on the first resolution.
This allows the channel to transition to TRANSIENT_FAILURE state from the CONNECTING state. This in turn allows GRPC calls to fail fast on the connection.
v1.2.1
v1.2.0
Changes:
- If a consul service has no ServiceAddress assigned, the address of the consul agent is used, as specified in https://www.consul.io/docs/agent/services.html (thanks to @subnova-etsy)
- New URL parameter
health
: whenhealth=FallbackToUnhealty
is set, a services resolves to unhealthy instances if none is available with a passing health check status - The
resolver.Address.ServerName
field is not set anymore to the consul service ID, it could have caused issues when establish TLS connections - Log messages are prefixed with
grpcconsulresolver
instead ofgrpc
- Consul queries are not delayed anymore for some msecs when the last 2 consul queries returned the same service addresses
v1.1.0
grpcconsulresolver was updated to use the resolver API of grpc-go 1.26.
grpc-go >= 1.26 is now required.
Changes:
- Resolver errors are now reported to the clientConnection (grpc/grpc-go#2951).
Retrying with a backoff timeout after errors is now controlled by the client load-balancer instead of by the grpcconsulresolver.
This enables grpc-clients to failFast on resolver errors. - Bugfix: When a service was resolved to >=1 addresses and then became unavailable, the clientConn continued to use the previous set of resolved addresses