rls: fix service name and method name separation

Should consistently use the last '/' in the full method name as the separator between service name and method name in MethodDescriptor.
This commit is contained in:
ZHANG Dapeng 2022-02-09 15:36:08 -08:00 committed by GitHub
parent b35506b144
commit da617e6ecd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 4 additions and 3 deletions

View File

@ -880,13 +880,14 @@ final class CachingRlsLbClient {
@Override
public PickResult pickSubchannel(PickSubchannelArgs args) {
String[] methodName = args.getMethodDescriptor().getFullMethodName().split("/", 2);
String serviceName = args.getMethodDescriptor().getServiceName();
String methodName = args.getMethodDescriptor().getBareMethodName();
RouteLookupRequest request =
requestFactory.create(methodName[0], methodName[1], args.getHeaders());
requestFactory.create(serviceName, methodName, args.getHeaders());
final CachedRouteLookupResponse response = CachingRlsLbClient.this.get(request);
logger.log(ChannelLogLevel.DEBUG,
"Got route lookup cache entry for service={0}, method={1}, headers={2}:\n {3}",
new Object[]{methodName[0], methodName[1], args.getHeaders(), response});
new Object[]{serviceName, methodName, args.getHeaders(), response});
if (response.getHeaderData() != null && !response.getHeaderData().isEmpty()) {
Metadata headers = args.getHeaders();