Common application properties

Various properties can be specified inside your application.properties file, inside your application.yml file, or as command line switches. This appendix provides a list of common Spring gRPC properties.

Name Default Description

spring.grpc.client.channels

Map of channels configured by name.

spring.grpc.client.default-channel.address

static://localhost:9090

The target address uri to connect to.

spring.grpc.client.default-channel.default-deadline

The default deadline for RPCs performed on this channel.

spring.grpc.client.default-channel.default-load-balancing-policy

round_robin

The default load balancing policy the channel should use.

spring.grpc.client.default-channel.enable-keep-alive

false

Whether keep alive is enabled on the channel.

spring.grpc.client.default-channel.health.enabled

false

Whether to enable client-side health check for the channel.

spring.grpc.client.default-channel.health.service-name

Name of the service to check health on.

spring.grpc.client.default-channel.idle-timeout

20s

The duration without ongoing RPCs before going to idle mode.

spring.grpc.client.default-channel.keep-alive-time

5m

The delay before sending a keepAlive. Note that shorter intervals increase the network burden for the server and this value can not be lower than 'permitKeepAliveTime' on the server.

spring.grpc.client.default-channel.keep-alive-timeout

20s

The default timeout for a keepAlives ping request.

spring.grpc.client.default-channel.keep-alive-without-calls

false

Whether a keepAlive will be performed when there are no outstanding RPC on a connection.

spring.grpc.client.default-channel.max-inbound-message-size

4194304B

Maximum message size allowed to be received by the channel (default 4MiB). Set to '-1' to use the highest possible limit (not recommended).

spring.grpc.client.default-channel.max-inbound-metadata-size

8192B

Maximum metadata size allowed to be received by the channel (default 8KiB). Set to '-1' to use the highest possible limit (not recommended).

spring.grpc.client.default-channel.negotiation-type

plaintext

The negotiation type for the channel.

spring.grpc.client.default-channel.secure

true

Flag to say that strict SSL checks are not enabled (so the remote certificate could be anonymous).

spring.grpc.client.default-channel.ssl.bundle

SSL bundle name.

spring.grpc.client.default-channel.ssl.enabled

Whether to enable SSL support. Enabled automatically if "bundle" is provided unless specified otherwise.

spring.grpc.client.default-channel.user-agent

The custom User-Agent for the channel.

spring.grpc.client.enabled

true

Whether to enable client autoconfiguration.

spring.grpc.client.observations.enabled

true

Whether to enable Observations on the client.

spring.grpc.server.address

The address to bind to. could be a host:port combination or a pseudo URL like static://host:port. Can not be set if host or port are set independently.

spring.grpc.server.enabled

true

Whether to enable server autoconfiguration.

spring.grpc.server.exception-handling.enabled

true

Whether to enable user-defined global exception handling on the gRPC server.

spring.grpc.server.health.actuator.enabled

true

Whether to adapt Actuator health indicators into gRPC health checks.

spring.grpc.server.health.actuator.health-indicator-paths

List of Actuator health indicator paths to adapt into gRPC health checks.

spring.grpc.server.health.actuator.update-initial-delay

5s

The initial delay before updating the health status the very first time.

spring.grpc.server.health.actuator.update-overall-health

true

Whether to update the overall gRPC server health (the '' service) with the aggregate status of the configured health indicators.

spring.grpc.server.health.actuator.update-rate

5s

How often to update the health status.

spring.grpc.server.health.enabled

true

Whether to auto-configure Health feature on the gRPC server.

spring.grpc.server.host

*

Server address to bind to. The default is any IP address ('*').

spring.grpc.server.keep-alive.max-age

Maximum time a connection may exist before being gracefully terminated (default infinite).

spring.grpc.server.keep-alive.max-age-grace

Maximum time for graceful connection termination (default infinite).

spring.grpc.server.keep-alive.max-idle

Maximum time a connection can remain idle before being gracefully terminated (default infinite).

spring.grpc.server.keep-alive.permit-time

5m

Maximum keep-alive time clients are permitted to configure (default 5m).

spring.grpc.server.keep-alive.permit-without-calls

false

Whether clients are permitted to send keep alive pings when there are no outstanding RPCs on the connection (default false).

spring.grpc.server.keep-alive.time

2h

Duration without read activity before sending a keep alive ping (default 2h).

spring.grpc.server.keep-alive.timeout

20s

Maximum time to wait for read activity after sending a keep alive ping. If sender does not receive an acknowledgment within this time, it will close the connection (default 20s).

spring.grpc.server.max-inbound-message-size

4194304B

Maximum message size allowed to be received by the server (default 4MiB).

spring.grpc.server.max-inbound-metadata-size

8192B

Maximum metadata size allowed to be received by the server (default 8KiB).

spring.grpc.server.observations.enabled

true

Whether to enable Observations on the server.

spring.grpc.server.port

9090

Server port to listen on. When the value is 0, a random available port is selected. The default is 9090.

spring.grpc.server.reflection.enabled

true

Whether to enable Reflection on the gRPC server.

spring.grpc.server.security.csrf.enabled

false

Whether to enable CSRF protection on gRPC requests.

spring.grpc.server.servlet.enabled

true

Whether to use a servlet server in a servlet-based web application. When the value is false, a native gRPC server will be forced.

spring.grpc.server.shutdown-grace-period

30s

Maximum time to wait for the server to gracefully shutdown. When the value is negative, the server waits forever. When the value is 0, the server will force shutdown immediately. The default is 30 seconds.

spring.grpc.server.ssl.bundle

SSL bundle name.

spring.grpc.server.ssl.client-auth

none

Client authentication mode.

spring.grpc.server.ssl.enabled

Whether to enable SSL support. Enabled automatically if "bundle" is provided unless specified otherwise.

spring.grpc.server.ssl.secure

true

Flag to indicate that client authentication is secure (i.e. certificates are checked). Do not set this to false in production.