client 的配置
@Slf4j
@Service
public class Log3Interceptor implements ClientInterceptor {
@Override
public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(MethodDescriptor<ReqT, RespT> method, CallOptions callOptions, Channel channel) {
return new ForwardingClientCall.SimpleForwardingClientCall<ReqT, RespT>(channel.newCall(method, callOptions)) {
@Override
public void start(Listener<RespT> responseListener, Metadata headers) {
headers.put(Metadata.Key.of("META1", ASCII_STRING_MARSHALLER), "meta11111111");
log.info("headers:{}", headers);
super.start(responseListener, headers);
}
};
}
}
server的配置
@GrpcGlobalServerInterceptor
@Component
@Slf4j
public class MDInterceptor implements io.grpc.ServerInterceptor {
@Override
public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call, Metadata metadata, ServerCallHandler<ReqT, RespT> next) {
String retMd = metadata.get(Metadata.Key.of("META1", ASCII_STRING_MARSHALLER));
log.info("Metadata Retrived : " + retMd);
return next.startCall(call, metadata);
}
}
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。