自定义 SPI 扩展的基本步骤

Dubbo 的 SPI 插件扩展机制说明,讲解自定义 SPI 扩展的基本步骤。

下面以 RPC 协议插件 为例,说明如何利用 Dubbo 提供的 SPI 插件提供一个自定义的 RPC 协议实现。如果想了解 SPI 机制的工作原理以及框架内置的 SPI 扩展点列表,请查看 参考手册 - SPI扩展

1. 提供 SPI 插件实现类

提供一个 Java 类实现 org.apache.dubbo.rpc.Protocol 接口。

package com.spi.demo;
import org.apache.dubbo.rpc.Protocol;

@Activate
public class CustomizedProtocol implements Protocol {
	// ...
}

2. 在指定文件配置实现类

在应用 resources/META-INF/services/ 目录下添加 org.apache.dubbo.rpc.Protocol 文件,文件中增加如下配置:

customized=com.spi.demo.CustomizedProtocol

3. 通过配置启用自定义协议实现

在应用中修改协议配置,告诉 Dubbo 框架使用自定义协议:

# 使用 Spring Boot,可修改 application.yml 或 application.properties
dubbo
  protocol
    name: customized

或者

ProtocolConfig protocol = new ProtocolConfig();
protocol.setName("cutomized");

4. 更多示例

如果你想了解更完整示例,请查看本目录下的其他示例:

最后修改 March 19, 2024: update doc (#2941) (ebc331d21fa)