datasource: retry policy for remote data source (#9463)
Implement a retry policy for remote data sources. Risk Level: Low Testing: Unit test Docs Changes: N/A Release Notes: added Fixes: #9438 Signed-off-by: Yan Xue <yxyan@google.com> Mirrored from https://github.com/envoyproxy/envoy @ bd7c97858556c2851589d7fb73a25e99b8687df3master-ci-test
parent
648c8dc4ea
commit
e75ca13ea1
4 changed files with 104 additions and 0 deletions
@ -0,0 +1,33 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.api.v2.core; |
||||
|
||||
import "google/protobuf/duration.proto"; |
||||
|
||||
import "udpa/annotations/migrate.proto"; |
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.api.v2.core"; |
||||
option java_outer_classname = "BackoffProto"; |
||||
option java_multiple_files = true; |
||||
option (udpa.annotations.file_migrate).move_to_package = "envoy.config.core.v3"; |
||||
|
||||
// [#protodoc-title: Backoff Strategy] |
||||
|
||||
// Configuration defining a jittered exponential back off strategy. |
||||
message BackoffStrategy { |
||||
// The base interval to be used for the next back off computation. It should |
||||
// be greater than zero and less than or equal to :ref:`max_interval |
||||
// <envoy_api_field_core.BackoffStrategy.max_interval>`. |
||||
google.protobuf.Duration base_interval = 1 [(validate.rules).duration = { |
||||
required: true |
||||
gte {nanos: 1000000} |
||||
}]; |
||||
|
||||
// Specifies the maximum interval between retries. This parameter is optional, |
||||
// but must be greater than or equal to the :ref:`base_interval |
||||
// <envoy_api_field_core.BackoffStrategy.base_interval>` if set. The default |
||||
// is 10 times the :ref:`base_interval |
||||
// <envoy_api_field_core.BackoffStrategy.base_interval>`. |
||||
google.protobuf.Duration max_interval = 2 [(validate.rules).duration = {gt {}}]; |
||||
} |
@ -0,0 +1,35 @@ |
||||
syntax = "proto3"; |
||||
|
||||
package envoy.config.core.v3; |
||||
|
||||
import "google/protobuf/duration.proto"; |
||||
|
||||
import "udpa/annotations/versioning.proto"; |
||||
|
||||
import "validate/validate.proto"; |
||||
|
||||
option java_package = "io.envoyproxy.envoy.config.core.v3"; |
||||
option java_outer_classname = "BackoffProto"; |
||||
option java_multiple_files = true; |
||||
|
||||
// [#protodoc-title: Backoff Strategy] |
||||
|
||||
// Configuration defining a jittered exponential back off strategy. |
||||
message BackoffStrategy { |
||||
option (udpa.annotations.versioning).previous_message_type = "envoy.api.v2.core.BackoffStrategy"; |
||||
|
||||
// The base interval to be used for the next back off computation. It should |
||||
// be greater than zero and less than or equal to :ref:`max_interval |
||||
// <envoy_api_field_config.core.v3.BackoffStrategy.max_interval>`. |
||||
google.protobuf.Duration base_interval = 1 [(validate.rules).duration = { |
||||
required: true |
||||
gte {nanos: 1000000} |
||||
}]; |
||||
|
||||
// Specifies the maximum interval between retries. This parameter is optional, |
||||
// but must be greater than or equal to the :ref:`base_interval |
||||
// <envoy_api_field_config.core.v3.BackoffStrategy.base_interval>` if set. The default |
||||
// is 10 times the :ref:`base_interval |
||||
// <envoy_api_field_config.core.v3.BackoffStrategy.base_interval>`. |
||||
google.protobuf.Duration max_interval = 2 [(validate.rules).duration = {gt {}}]; |
||||
} |
Loading…
Reference in new issue