apache dubbo 2.7.3 源代码片段 - 内置的Filter

.

// org.apache.dubbo.rpc.Filter

// dubbo-config/dubbo-config-api/META-INF/services/org.apache.dubbo.rpc.Filter
//     mockfilter=org.apache.dubbo.config.mock.MockFilter // 支持unknown;
//
// dubbo-filter/dubbo-filter-cache/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
//     cache=org.apache.dubbo.cache.filter.CacheFilter // 支持server、client;providerUrl地址存在cache参数;根据请求参数作为key,读取缓存,有缓存直接返回,没缓存就调用服务写入缓存,然后返回。
//
// dubbo-filter/dubbo-filter-validation/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
//     validation=org.apache.dubbo.validation.filter.ValidationFilter // 支持server、client;providerUrl地址存在validation参数;校验调用参数
//
// dubbo-monitor/dubbo-monitor-api/META-INF/services/org.apache.dubbo.rpc.Filter
//     monitor=org.apache.dubbo.monitor.support.MonitorFilter // 支持server、client;providerUrl地址存在monitor参数;每次请求就调用次数+1
//
// dubbo-monitor/dubbo-monitor-default/META-INF/services/org.apache.dubbo.rpc.Filter
//     metrics=org.apache.dubbo.monitor.dubbo.MetricsFilter // 支持unknown;发布Metrics服务(可dubbo调用),让其他client能拉取;收集调用数据记录到内存(接口名、方法名、返回值success、响应时间)
//
// dubbo-rpc/dubbo-rpc-api/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
//     echo=org.apache.dubbo.rpc.filter.EchoFilter // 支持server;调用方法是$ECHO;请求什么就响应什么;
//     generic=org.apache.dubbo.rpc.filter.GenericFilter  // 支持server;处理泛化调用;调用方法是$INVOKE;
//     genericimpl=org.apache.dubbo.rpc.filter.GenericImplFilter // 支持client;url中包含generic参数;构建client的泛化调用参数;
//     token=org.apache.dubbo.rpc.filter.TokenFilter // 支持server;providerUrl地址存在token参数;检查client调用传递的Attachments中是否等于配置的token
//     accesslog=org.apache.dubbo.rpc.filter.AccessLogFilter // 支持server;providerUrl地址存在dubbo.accesslog参数;执行:1、开启异步线程消费内存的日志记录到文件;2、记录相关信息到内存(接口名、方法名、版本、分组、调用时间、参数类型列表、参数列表)
//     activelimit=org.apache.dubbo.rpc.filter.ActiveLimitFilter // 支持client;检查actives数量是否超过url中配置的key为"method0.actives"的阈值;超过就等待"method0.timeout",如果没降下来,就抛出异常。
//     classloader=org.apache.dubbo.rpc.filter.ClassLoaderFilter // 支持server;修改线程上下文的类加载为接口的类加载器。
//     context=org.apache.dubbo.rpc.filter.ContextFilter // 支持server;读取invocation.getAttachments()的数据,设置基本数据(invoker、invocation、本地ip、远程ip)到 RpcContext.getContext().setAttachments(attachments)
//     consumercontext=org.apache.dubbo.rpc.filter.ConsumerContextFilter // 支持client;清除服务端的无效数据,设置基本数据(invoker、invocation、本地ip、远程ip)到 RpcContext.getContext().setAttachments(attachments)
//     exception=org.apache.dubbo.rpc.filter.ExceptionFilter // 支持server;把抛出来的((是RuntimeException || 是Exception) && 不是RpcException )异常转成字符串
//     executelimit=org.apache.dubbo.rpc.filter.ExecuteLimitFilter // 支持server;检查方法的调用阈值超过"method0.executes",就抛出异常。
//     deprecated=org.apache.dubbo.rpc.filter.DeprecatedFilter // 支持client;检查方法存在"method0.deprecated"参数,就记录一条错误记录到日志文件中
//     compatible=org.apache.dubbo.rpc.filter.CompatibleFilter // 支持unknown;如果响应的返回值不是目标类型,就自动转换目标类型
//     timeout=org.apache.dubbo.rpc.filter.TimeoutFilter // 支持server;如果响应时间超过url中配置的"method0.timeout"值,就写一条警告日志到日志文件中
//
// dubbo-rpc/dubbo-rpc-dubbo/META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter
//     trace=org.apache.dubbo.rpc.protocol.dubbo.filter.TraceFilter // 支持server;存在调用的时候给《TraceTelnet客户端列表》发送消息(包含:rpc调用的客户端地址、接口名、方法名、调用参数、返回值、响应时间)
//     future=org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter // 支持client;支持异步调用

.

.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值