下面以 RPC 协议插件
为例,说明如何利用 Dubbo 提供的 SPI 插件提供一个自定义的 RPC 协议实现。如果想了解 SPI 机制的工作原理以及框架内置的 SPI 扩展点列表,请查看 参考手册 - SPI扩展。
提供一个 Java 类实现 org.apache.dubbo.rpc.Protocol
接口。
package com.spi.demo;
import org.apache.dubbo.rpc.Protocol;
@Activate
public class CustomizedProtocol implements Protocol {
// ...
}
在应用 resources/META-INF/services/
目录下添加 org.apache.dubbo.rpc.Protocol
文件,文件中增加如下配置:
customized=com.spi.demo.CustomizedProtocol
resources/META-INF/services/org.apache.dubbo.rpc.Protocol
。key=value
形式,其中 key
可随便定义,但建议增加特定前缀以避免与 Dubbo 内置实现重名,value
必须设置为扩展类实现的全路径名。在应用中修改协议配置,告诉 Dubbo 框架使用自定义协议:
# 使用 Spring Boot,可修改 application.yml 或 application.properties
dubbo
protocol
name: customized
或者
ProtocolConfig protocol = new ProtocolConfig();
protocol.setName("cutomized");
如果你想了解更完整示例,请查看本目录下的其他示例: