SPI参考手册
SPI使用范围 扩展接口仅用于系统集成,或Contributor扩展功能插件。 |
协议扩展
(+) ([#])
(1) 扩展说明:
RPC协议扩展,封装远程调用细节。
契约:
- 当用户调用refer()所返回的Invoker对象的invoke()方法时,协议需相应执行同URL远端export()传入的Invoker对象的invoke()方法。
- 其中,refer()返回的Invoker由协议实现,协议通常需要在此Invoker中发送远程请求,export()传入的Invoker由框架实现并传入,协议不需要关心。
注意:
- 协议不关心业务接口的透明代理,以Invoker为中心,由外层将Invoker转换为业务接口。
- 协议不一定要是TCP网络通讯,比如通过共享文件,IPC进程间通讯等。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
调用拦截扩展
(1) 扩展说明
服务提供方和服务消费方调用过程拦截,Dubbo本身的大多功能均基于此扩展点实现,每次远程方法执行,该拦截都会被执行,请注意对性能的影响。
约定:
- 用户自定义filter默认在内置filter之后。
- 特殊值default,表示缺省扩展点插入的位置。
- 比如:filter="xxx,default,yyy",表示xxx在缺省filter之前,yyy在缺省filter之后。
- 特殊符号-,表示剔除。
- 比如:filter="-foo1",剔除添加缺省扩展点foo1。
- 比如:filter="-default",剔除添加所有缺省扩展点。
- provider和service同时配置的filter时,累加所有filter,而不是覆盖。
- 比如:<dubbo:provider filter="xxx,yyy"/>和<dubbo:service filter="aaa,bbb" />,则xxx,yyy,aaa,bbb均会生效。
- 如果要覆盖,需配置:<dubbo:service filter="-xxx,-yyy,aaa,bbb" />
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
引用监听扩展
(1) 扩展说明:
当有服务引用时,触发该事件。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
暴露监听扩展
(1) 扩展说明:
当有服务暴露时,触发该事件。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
集群扩展
(1) 扩展说明:
当有多个服务提供方时,将多个服务提供方组织成一个集群,并伪装成一个提供方。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
路由扩展
(1) 扩展说明:
从多个服务提者方中选择一个进行调用。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
负载均衡扩展
(1) 扩展说明:
从多个服务提者方中选择一个进行调用。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
合并结果扩展
(1) 扩展说明:
合并返回结果,用于分组聚合。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
注册中心扩展
(1) 扩展说明:
负责服务的注册与发现。
(2) 扩展接口:
(3) 扩展配置:
(4) 扩展契约:
(5) 已知扩展:
(6) 扩展示例:
监控中心扩展
(1) 扩展说明:
负责服务调用次和调用时间的监控。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
扩展点加载扩展
(1) 扩展说明:
扩展点本身的加载容器,可从不同容器加载扩展点。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
动态代理扩展
(1) 扩展说明:
将Invoker接口转换成业务接口。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
编译器扩展
(1) 扩展说明:
Java代码编译器,用于动态生成字节码,加速调用。
(2) 扩展接口:
(3) 扩展配置:
自动加载
(4) 已知扩展:
(5) 扩展示例:
消息派发扩展
(1) 扩展说明:
通道信息派发器,用于指定线程池模型。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
线程池扩展
(1) 扩展说明:
服务提供方线程程实现策略,当服务器收到一个请求时,需要在线程池中创建一个线程去执行服务提供方业务逻辑。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
序列化扩展
(1) 扩展说明:
将对象转成字节流,用于网络传输,以及将字节流转为对象,用于在收到字节流数据后还原成对象。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
网络传输扩展
(1) 扩展说明:
远程通讯的服务器及客户端传输实现。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
信息交换扩展
(1) 扩展说明:
基于传输层之上,实现Request-Response信息交换语义。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
组网扩展
(1) 扩展说明:
对等网络节点组网器。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
Telnet命令扩展
(1) 扩展说明:
所有服务器均支持telnet访问,用于人工干预。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
状态检查扩展
(1) 扩展说明:
检查服务依赖各种资源的状态,此状态检查可同时用于telnet的status命令和hosting的status页面。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
容器扩展
(1) 扩展说明:
服务容器扩展,用于自定义加载内容。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
页面扩展
(1) 扩展说明:
对等网络节点组网器。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
缓存扩展
(1) 扩展说明:
用请求参数作为key,缓存返回结果。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
验证扩展
(1) 扩展说明:
参数验证扩展点。
(2) 扩展接口:
(3) 扩展配置:
(4) 已知扩展:
(5) 扩展示例:
日志适配扩展
(1) 扩展说明:
日志输出适配扩展点。