Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Deprecate server/path in RouteLookupRequest The current requirement to have server and path in the RouteLookupRequest means each separate method has to be separately cached in the client, and separately requested from the RLS server. This is bad for cache sizing, and bad for request latency, particularly for infrequently used methods whose cache entries time out. This change switches to using a model where the configuration explicitly requests whether or not to include the host, service, and method names in the RouteLookupRequest.key_map. For flexibility, the configuration will either specify the name of a key to use for each of those three things (e.g., "method: my_method_key") or can omit the proto field entirely to cause that field (e.g. method name) not to be included in the key_map at all. For now, if the extra_keys submessage is specified at all, the server/path fields will not be set. (So an empty extra_keys submessage in the configuration is valid, and means no host/service/method information at all will be included in the request.) Eventually, we will remove the now-deprecated server/path fields from the RouteLookupRequest proto. To allow grouping methods together but still conveying "which group" to the RLS server, and allow caching the results separately, we add another piece of configuration, "constant_keys". This string map is just a set of constant key/values that will be added to any key built by the particular keybuilder. * Specify new semantics for leaving NameMatcher.key empty This field can be omitted or set to an empty string for the HttpKeyBuilder uses, in which case the matcher will match the specified header name or query parameter, but not update the key_map. This brings it in line with other aspects of the matcher model by decoupling matching from key generation.
- Loading branch information